我正在尝试使用pd.to_numeric转换列,但由于某种原因,它将所有值(除了一个)转换为NaN:
In[]: pd.to_numeric(portfolio["Principal Remaining"],errors="coerce")
Out[]:
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 NaN
9 NaN
10 NaN
11 NaN
12 NaN
13 NaN
14 NaN
15 NaN
16 NaN
17 NaN
18 836.61
19 NaN
20 NaN
...
Name: Principal Remaining, Length: 32314, dtype: float64
关于为什么会这样的想法?原始数据如下所示:
1 18,052.02
2 27,759.85
3 54,061.75
4 89,363.61
5 46,954.46
6 64,295.64
7 100,000.00
8 27,905.98
9 13,821.48
10 16,937.89
...
Name: Principal Remaining, Length: 32314, dtype: object
解决方法:
read_csv with thousands =’,’
df = pd.read_csv('file.csv', thousands=',')
这可以在读取数据时解决问题.
替换和to_numeric
df['Principal Remaining'] = pd.to_numeric(
df['Principal Remaining'].str.replace(',', ''), errors='coerce')
如果第一个选项不是选项,则需要首先使用str.replace删除逗号,然后调用pd.to_numeric,如下所示.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。