将所有列值替换为nan

2024-06-23 19:32:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据框,其中包含一个由3个对象值填充的列:“true”、“false”和“--”

我想用0替换“true”值,用1替换“false”值,所以我写了以下内容

df['True/False'] = df['True/False'].str.replace('False' '1')
df['True/False'] = df['True/False'].str.replace('True', '0')

所以,我希望输入['False','True','False','False','False','---'] 当Iprint(df['True/False'])时返回[1,0,1,1,1,'---']

但我得到的却是:

["NaN","NaN","NaN","NaN","NaN","NaN"]

帮点忙


Tags: 数据对象falsetruepandasdfnanreplace
1条回答
网友
1楼 · 发布于 2024-06-23 19:32:33

您应该使用^{}而不是df.replace,因为它要快得多:

创建要替换的dict个值:

In [3590]: d = {'True': 0, 'False': 1}

考虑^ {CD4>}:

In [3592]: df = pd.DataFrame(['False','True','False','False','False',' -'], columns=['A'])

In [3593]: df
Out[3593]: 
       A
0  False
1   True
2  False
3  False
4  False
5     -

In [3597]: df.A = df.A.map(d).fillna(df.A)

In [3598]: df
Out[3598]: 
     A
0    1
1    0
2    1
3    1
4    1
5   -

相关问题 更多 >

    热门问题