如何删除python中数据框的数据列中的0

时间:2017-10-31 05:45:20

标签: python pandas dataframe data-analysis

我有一个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     " " 

5 个答案:

答案 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 0string '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]='" "'