我尝试使用' $'转换所有列从对象到浮动类型的数量。
使用以下代码我无法删除$ sign。
输入:
df[:] = df[df.columns.map(lambda x: x.lstrip('$'))]
答案 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