我试图调整一些数据,但原始数据每行的列数不同。我知道有一些类似的问题,比如
使用pandas读取列数不规则的csv文件几乎可以描述我的问题,但在这种情况下,用户有固定数量的最大列/行。在我的例子中,我不知道最大列数(以及它在哪一行)。
我的数据集的结构
数据集(您可以在此处找到:https://docs.google.com/spreadsheets/d/1txigrvlofn5paob_-jvpt7ent2znzmzmlk6fzhhznsa/edit?usp=sharing)有一个标题行,但标题是无用的,我不会导入它。在第8列之后,以下6列连续重复
1 CAR-299.80115.12等2重型车辆-333.1289.02等。
第一种方法:
使用(如何在加载python之前知道csv行数?)
dataname = 'csv_file.csv'
lines = sum(1 for line in open(dataname))
我可以在不加载python中的csv的情况下计算行数,但是我还没有找到一种类似的方法来计算不加载csv文件的列数。
第二种方法:
我在python/pandas中找到了另一种方法(几乎解决了我的问题)——parsererror:错误标记化数据。c错误:第i行中预期有x个字段,而解决该错误的是y( pandas.errors.ParserError: Error tokenizing data. C error: Expected 1701 fields in line 3, saw 2829
)当我使用Pandas的时候 data_raw2 = pd.read_csv(dataname, delimiter=';', decimal='.', header=0)
. 此线程中的解决方案是使用
with open(dataname, 'r', encoding='utf-8') as f:
bla = pd.read_csv(f, engine='python').dropna(how='all', axis=1)
但这给了我一个给定行数但只有一列的联合 Dataframe (见下图)。
我的目标
我进一步分析的目标是转置该表,将车辆类型从“car”(string)重写为1(int/float),并添加一个新的标题,如下面的示例所示,并将其转换为aumpy数组
idtypetimestampxyva_tana_LonlaneDirection 110.0012115.120.2-0.411110.5064116.000.10.111 230.506489.020.10.122
暂无答案!
目前还没有任何答案,快来回答吧!