[英]Reading a pandas data frame having unequal columns in observations
我正在尝试阅读这个小数据文件,链接 - https://drive.google.com/open?id=1nAS5mpxQLVQn9s_aAKvJt8tWPrP_DUiJ
我正在使用代码 -
df = pd.read_table('/Data/123451_date.csv', sep=';', index_col=0, engine='python', error_bad_lines=False)
它有';' 作为分隔符,文件中缺少某些观察(或行)中某些列值的值。
看起来您使用的数据中有一些垃圾。 准确地说,第 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)
drop("Unnamed: 28", axis=1)
只是为了删除可能由于数据表中的每一行以;
结尾而创建的附加列;
(因为它将每行末尾的空白读取为数据)。
print(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
命令的作用,这里是没有它会发生什么(注意最后一个奇怪的列)
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]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.