【发布时间】:2015-02-11 00:33:18
【问题描述】:
我正在处理使用 Adobe acrobat pro 从 pdf 转换而来的 csv 表。出于某种原因,该软件每 117 行创建一个经常性错误。它“复制并连接数字”,例如一行
7307 1 87.1
变成了这样的东西:
73077307 11 87187.1
我怎样才能用python“纠正”这些行?我需要在中间拆分浮动并擦除前半部分。
我已经阅读了几个关于截断的主题,但其中大多数需要按小数点拆分浮点数或只处理整数。数据类型将是 float64,因为我正在使用 pandas read_csv 函数来读取 csv。
df = pd.read_csv('path/file.csv',sep=';',index_col='Rang', na_values=['NA'])
df.dropna(how="all", inplace=True) # drop empty rows (an additional issue)
df[(df.index >10000)]
EDIT1:添加了代码,我认为我可以识别错误的代码,因为我一年中每小时有 1 行。任何索引大于 365*24=8760 的行都是错误的。但我现在看到这还不够。可以循环数据帧,如果行 (i+1)-行 (i) 的索引大于 1,则需要更正。但我是 python 的初学者。我不知道怎么写,但这是一个不同的问题。
我正在使用 python 版本 2.7.8 pandas v. 0.14.1
非常感谢!
【问题讨论】:
-
你必须把它当作一个字符串。
-
请edit您的问题包括您目前为此使用的代码。感谢您提高问题的参考价值!
-
第一个也是最重要的问题 - 您如何区分此类数据与有效数字?
-
@ivan_pozdeev,可以确定是因为一年中的每小时生产,一年中的每个小时。索引是一个应该在 0 到 8760 之间的数字。对于“错误的”,情况不一定如此。
-
@merlin2011 我会尝试使用字符串方法,我会更新进度