2017-04-12 136 views
1

我知道如何使用字典替换列值,但是我想将不在我的字典中的所有值都转换为NaN或其他值。我得到这个:Python数据框:使用字典替换值,如果不是在字典中转换NaN

Dictionary is: 
{'apple': 1, 'peach': 6, 'watermelon': 4, 'grapes': 5, 'orange': 2, 
'banana': 3} 

DataFrame is: 
fruit_tag 
apple 
orange 
banana 
watermelon 
red 
blue 

I use: 
df["fruit_tag"].replace(dict, inplace=True) 
print(df) 

I get: 
fruit_tag 
1 
2 
3 
4 
red 
blue 

What I want to get: 
fruit_tag 
1 
2 
3 
4 
NaN 
NaN 

回答

1

使用map

d = {'apple': 1, 'peach': 6, 'watermelon': 4, 'grapes': 5, 'orange': 2,'banana': 3} 

df["fruit_tag"] = df["fruit_tag"].map(d) 
print (df) 
    fruit_tag 
0  1.0 
1  2.0 
2  3.0 
3  4.0 
4  NaN 
5  NaN