Python 读取观测中具有不等列的数据帧

Python 读取观测中具有不等列的数据帧,python,pandas,csv,Python,Pandas,Csv,我试图读取这个小数据文件, 链接- 我正在使用代码- df = pd.read_table('/Data/123451_date.csv', sep=';', index_col=0, engine='python', error_bad_lines=False) 它有“;”作为一个seperator,文件中缺少某些列的值以及某些观察值(或行)中的值 我怎样才能正确地阅读它。我看到当前的数据帧,它没有正确加载。 看起来您使用的数据中有一些垃圾。准确地说,第1-33行(含)包含了额外的、不必

我试图读取这个小数据文件, 链接-

我正在使用代码-

df = pd.read_table('/Data/123451_date.csv', sep=';', index_col=0,  engine='python', error_bad_lines=False)
它有“;”作为一个seperator,文件中缺少某些列的值以及某些观察值(或行)中的值

我怎样才能正确地阅读它。我看到当前的数据帧,它没有正确加载。


看起来您使用的数据中有一些垃圾。准确地说,第1-33行(含)包含了额外的、不必要的(非GPS)信息。您可以通过手动从数据表中删除不需要的信息来修复数据库,也可以使用以下代码段跳过包含它的行:

from pandas import read_table

data = read_table('34_2017-02-06.gpx.csv', sep=';', skiprows=list(range(1, 34)).drop("Unnamed: 28", axis=1)
拖放(“Unnamed:28”,axis=1)
只是为了删除一个额外的列,该列可能是由于数据表中以
结尾的每一行而创建的(因为它读取每行末尾的空白作为数据)

打印(data.head())
的结果如下:

   index  cumdist   ele    ...     esttotalpower        lat       lon
0     49      340 -34.8    ...                 9  52.077362  5.114530
1     51      350 -34.8    ...                17  52.077468  5.114543
2     52      360 -35.0    ...               -54  52.077521  5.114551
3     53      370 -35.0    ...              -173  52.077603  5.114505
4     54      380 -34.8    ...               335  52.077677  5.114387

[5 rows x 28 columns]
为了进一步解释
drop
命令的作用,下面是没有它会发生的情况(请注意最后一个奇怪的专栏)


@jezrael你能看看itI测试它并发现问题吗?前33行每行末尾都有奇怪的值,不知道发生了什么,然后我应该做什么,我可以在代码中做什么更改?
   index  cumdist   ele     ...             lat       lon  Unnamed: 28
0     49      340 -34.8     ...       52.077362  5.114530          NaN
1     51      350 -34.8     ...       52.077468  5.114543          NaN
2     52      360 -35.0     ...       52.077521  5.114551          NaN
3     53      370 -35.0     ...       52.077603  5.114505          NaN
4     54      380 -34.8     ...       52.077677  5.114387          NaN

[5 rows x 29 columns]