微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – pd.to_numeric将整个系列转换为NaN

我正在尝试使用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] 举报,一经查实,本站将立刻删除。

相关推荐