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

标签 python pandas dataframe

我正在尝试使用 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_csvthousands=','

df = pd.read_csv('file.csv', thousands=',')

这解决了读取数据时的问题。


replaceto_numeric

df['Principal Remaining'] = pd.to_numeric(
    df['Principal Remaining'].str.replace(',', ''), errors='coerce')

如果第一个选项不是一个选择,您需要先使用 str.replace 去掉逗号,然后调用 pd. to_numeric 如此处所示。

关于python - pd.to_numeric 将整个系列转换为 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48122696/

相关文章:

python - Pandas :删除重复的行对

python Tkinter focus_set() 在捕获按键事件时无法正常工作

python - Openpyxl 100% 读取为 'int'

python - 使用 python 3.6.3 使用 beautifulsoup4 抓取多个页面

python - 如何对 Pandas 中的数据框进行分组并在输出中保留整个字段

python - 你如何转置 dask 数据框(将列转换为行)以接近整洁的数据原则

python - Pandas:对于 df 中的每一行,计算该值在另一列中存在的次数

python - Blaza 和 Pandas 的大数据

python - 我的代码有什么问题,返回空图?

Python:在给定索引值处将数据帧插入到更大的数据帧中