pandas - 如何将所有列从object转换为float类型

时间:2018-04-14 16:26:00

标签: pandas type-conversion

我尝试使用' $'转换所有列从对象到浮动类型的数量。

使用以下代码我无法删除$ sign。

输入:

df[:] = df[df.columns.map(lambda x: x.lstrip('$'))]

3 个答案:

答案 0 :(得分:2)

您可以使用extract

df=pd.DataFrame({'A':['$10.00','$10.00','$10.00']})
df.apply(lambda x : x.str.extract('(\d+)',expand=False).astype(float))
Out[333]: 
      A
0  10.0
1  10.0
2  10.0

更新

df.iloc[:,9:32]=df.iloc[:,9:32].apply(lambda x : x.str.extract('(\d+)',expand=False).astype(float))

答案 1 :(得分:1)

请使用以下基于正则表达式的匹配来替换所有出现的$ with null character

df = df.replace({'\$': ''}, regex=True) 

更新:根据@Wen的建议,解决方案将是

df.iloc[:,9:32]=df.iloc[:,9:32].replace({'\$':''},regex=True).astype(float)

答案 2 :(得分:1)

也许您也可以尝试使用applymap

df[:] = df.astype(str).applymap(lambda x:  x.lstrip('$')).astype(float)

如果df是:

   0   1   2
0  $1  7   5
1  $2  7   9
2  $3  7   9

然后,它将导致:

    0    1    2
0  1.0  7.0  5.0
1  2.0  7.0  9.0
2  3.0  7.0  9.0