首页 > 解决方案 > 如何解决 Dataframe to_numeric 错误(Python)?

问题描述

我有包含浮点数的数据框。我想将数字运算作为 sum mult。ETC。 。列类型是对象。所以我必须将此列更改为数字列。我使用 to_numeric 函数,但它给了我 NaN 结果。

我怎么解决这个问题?

代码 :

#import libraries
import pandas as pd

data = pd.read_csv('file.csv', engine='python', delimiter=';')

#change object columns into a numeric columnn
for i in data.columns :
    data[i] = pd.to_numeric(data[i], errors='coerce')

数据框

t0 (actual) t0  t0,lower    t0,upper
0   11861,6318726842    0   0   0
1   4761,43316  5709,1728515625 3776,725188260803   7939,908970830105
2   36,22841951973635   0   0   0
3   583,3716479196096   0   0   0
4   25087,16436661841   26040,7890625   21825,20941707611   31905,394350044822
....

结果 :

    t0 (actual) t0  t0,lower    t0,upper
0   NaN NaN NaN NaN
1   NaN NaN NaN NaN
2   NaN NaN NaN NaN
3   NaN NaN NaN NaN
4   NaN NaN NaN NaN

标签: pythonpandas

解决方案


我无法重现您的错误,但我假设您可以添加decimal=","pd.read_csv.

文档

decimal : str, 默认 '.'<br /> 识别为小数点的字符(例如,使用 ',' 表示欧洲数据)。

所以你的代码看起来像这样:

#import libraries
import pandas as pd

data = pd.read_csv('file.csv', engine='python', delimiter=';', decimal=",")

#change object columns into a numeric columnn
for i in data.columns :
    data[i] = pd.to_numeric(data[i], errors='coerce')

推荐阅读