我有一个df,
dff=pd.DataFrame({"Name":["sri","kumar","raj"],"values":[1,0,0]})
Name values
sri 1
kumar 0
raj 0
我试图用空格替换0" "
我试过了,
dff["values"].astype(str).replace(0," ")
但值仍然相同
我想要的df,
Name values
sri 1
kumar " "
raj " "
答案 0 :(得分:4)
您可以使用以下
DataFrame.replace(
to_replace=None,
value=None,
inplace=False,
limit=None,
regex=False,
method='pad',
axis=None)
在你的情况下,
dff['values'].replace(
to_replace=[0],
value=' ',
inplace=True
)
答案 1 :(得分:2)
替换integer
0
或string
'0'
,因为astype(str)
将integer
转换为string
s:
dff["values"] = dff["values"].replace(0," ")
或者:
dff["values"] = dff["values"].astype(str).replace('0'," ")
答案 2 :(得分:2)
选项1
在astype(bool)
pd.Series.where
dff.assign(values=dff['values'].where(dff['values'].astype(bool), ''))
Name values
0 sri 1
1 kumar
2 raj
选项2
使用np.where
重建
pd.DataFrame(np.where(dff.eq(0), '', dff), dff.index, dff.columns)
Name values
0 sri 1
1 kumar
2 raj
答案 3 :(得分:1)
你可以试试这个:
In [40]: dff.ix[dff['values']==0, 'values'] = ' '
In [41]: dff
Out[41]:
Name values
0 sri 1
1 kumar
2 raj
答案 4 :(得分:1)
这对我有用
import pandas as pd
dff=pd.DataFrame({"Name":["sri","kumar","raj"],"values":[1,0,0]})
dff['values'].loc[dff['values']==0]='" "'