[英]Pandas replacing all column values with nan
我有一個 pandas dataframe 包含由 3 個 object 值填充的列:“true”、“false”和“---”
我想用 0 替換“真”值,用 1 替換“假”值,所以我寫了以下內容
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','---']
返回[1,0,1,1,1,'---']
當我print(df['True/False'])
。
但相反,我得到:
["NaN","NaN","NaN","NaN","NaN","NaN"]
一點幫助?
而不是df.replace
,您應該使用Series.map
因為它要快得多:
創建要替換的值的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 ---
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.