2015-02-11 74 views
0

我处理一个CSV表从PDF转换与Adobe的Acrobat Pro。由于某些原因,软件每117行会产生一次循环错误。它“重复&连接数字”例如一排分裂浮点数与Python

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:添加了代码,我想我可以识别错误的,因为我每年有一行每小时有一行。任何索引大于365 * 24 = 8760的行都是错误的。但我现在看到这还不够。可以循环数据帧,并且如果行(i)的行(i + 1) - 索引的索引大于1,则需要更正。但我是python的一个begginer ..我不知道如何写这个,但这是一个不同的问题。

我使用Python版本2.7.8熊猫诉0.14.1

非常感谢!

+0

您必须将其视为字符串。 – merlin2011 2015-02-11 00:38:44

+0

请[编辑]你的问题,包括你目前使用的代码。感谢您提高问题的参考价值! – 2015-02-11 00:39:27

+2

第一个也是最重要的问题 - 你如何从有效数字中区分出这些数据? – 2015-02-11 00:56:40

回答

1

抓住每一个空间分隔成单词列表作为一个字符串。对于该列表中的每个项目,检查单词是否是偶数或奇数。如果连,用右半字替换单词。如果奇怪(因为'。'在右侧)抓取右半部分四舍五入(例如,5个最右侧的字符以9个字符为单位)。在替换每个单词时将转换添加到float64。