将列中的字符串十进制数字转换为浮于Pandas DataFrame中

时间:2019-05-28 23:36:30

标签: python pandas dataframe

我有一个像这样的数据集(还有更多列):

      FLAG__DC SEXECOND CRM_TAUX
0            N        M      0,9
1            N        M      0,9
2            N        M      1,2
3            O        M        1
4            N        M        1
5            N        M      0,9
6            O        M        1
7            N        M      0,9

我想将列CRM_TAUX转换为Float ...请帮助!

我已经尝试过了,但是不起作用:

df['CRM_TAUX'] = df.CRM_TAUX.replace(',','.')
df['CRM_TAUX'] = df.CRM_TAUX.apply(pd.to_numeric)

这是我得到的错误(以及更多):

Unable to parse string "1,2" at position 0

谢谢!

1 个答案:

答案 0 :(得分:1)

使用str.replace

df.CRM_TAUX.str.replace(',' , '.')

Out[2246]:
0    0.9
1    0.9
2    1.2
3      1
4      1
5    0.9
6      1
7    0.9
Name: CRM_TAUX, dtype: object

接下来,调用pd.to_numeric应该可以

s = df.CRM_TAUX.str.replace(',' , '.')
df['CRM_TAUX'] = pd.to_numeric(s)


Out[2250]:
  FLAG__DC SEXECOND  CRM_TAUX
0        N        M       0.9
1        N        M       0.9
2        N        M       1.2
3        O        M       1.0
4        N        M       1.0
5        N        M       0.9
6        O        M       1.0
7        N        M       0.9