Pandas 用 nan 替换所有列值
Pandas replacing all column values with nan
我有一个 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','---']
return [1,0,1,1,1,'---']
当我 print(df['True/False'])
.
但我得到的是:
["NaN","NaN","NaN","NaN","NaN","NaN"]
有点帮助?
您应该使用 Series.map
而不是 df.replace
,因为它更快:
创建 dict
个要替换的值:
In [3590]: d = {'True': 0, 'False': 1}
考虑 df
:
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 ---
我有一个 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','---']
return [1,0,1,1,1,'---']
当我 print(df['True/False'])
.
但我得到的是:
["NaN","NaN","NaN","NaN","NaN","NaN"]
有点帮助?
您应该使用 Series.map
而不是 df.replace
,因为它更快:
创建 dict
个要替换的值:
In [3590]: d = {'True': 0, 'False': 1}
考虑 df
:
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 ---