【发布时间】:2018-06-25 00:40:57
【问题描述】:
所以我得到了一个数据框,其中至少有 2-3 列,数字从 1 到 3000, 并且数字有逗号。我需要将所有相关列中的数字转换为浮点数或整数。这是我的数据框的示例:
data = pd.read_csv('exampleData.csv')
data.head(10)
Out[179]:
Rank Total
1 2
20 40
1,200 1,400
NaN NaN
从示例中可以看出,我的 Dataframe 由数字、带逗号的数字和一些 NaN 组成。我在这里阅读了几篇关于转换为 float 或 int 的帖子,但我总是收到错误消息,例如:'str'对象没有属性“astype”。 对于几列,我的方法如下:
cols = ['Rank', 'Total']
data[cols] = data[cols].apply(lambda x: pd.to_numeric(x.astype(str)
.str.replace(',',''), errors='coerce'))
【问题讨论】:
-
刚刚尝试运行您的代码,它在这里完美运行。
-
每一列的
dtype是什么? -
dtype 是对象。也许这就是问题所在?