【发布时间】:2018-03-15 22:53:19
【问题描述】:
我正在使用 pandas 将 Excel 电子表格作为数据框导入。电子表格是手动维护的,并且包含几个数据输入错误,其中最常见的是格式化为带有前导不间断空格 ('\xa0') 的字符串的整数。电子表格会定期更新,因此完全无法预测这些令人讨厌的不一致出现的时间和地点。
基本上,我正在尝试找到一种干净的方法来查找和重新格式化这些值。由于它们主要限于一列,因此我尝试了几个版本:
for entry in df.loc[:, 'col']:
if type(row) == str:
row = row.replace(u'\xa0', u'')
如果我在 for 循环内添加一个 print(row) 调用,它会准确地打印出我所期望的结果,即“1187383”变为“1187383”。但是,在for 循环之外,不会替换该值。循环执行后,调用.loc 将返回未更改的条目('1187383')。
我确定我在这里遗漏了一些明显的东西,但我现在已经投入了大约一天的时间来寻找解决方案。任何帮助表示赞赏!如果您需要更多信息,请告诉我。
【问题讨论】:
-
都是数字?
-
是的,所有数字。
-
df.replace('[^0-9]','',regex=True).apply(pd.to_numeric)这行得通吗? -
不,很遗憾,这并没有删除空格。
-
你做了
df = df.replace('...因为它应该至少删除空格
标签: python string pandas type-conversion