仅当元素出现在字典中时才修改其名称
Modify the name of the elements only if they appear in the dictionary
让它成为下面的Python Pandas DataFrame.
ID
region
12
FRA
99
GER
13
ESP
69
UK
17
GER
02
GER
使用下一个代码:
dictionary = {'GER': 'Germany', 'FRA': 'France'}
df['region'] = df['region'].map(dictionary)
我得到以下结果:
ID
region
12
France
99
Germany
13
NaN
69
NaN
17
Germany
02
Germany
我的想法是,字典中没有出现的值,保留它们以前的值。
ID
region
12
France
99
Germany
13
ESP
69
UK
17
Germany
02
Germany
我该怎么做?提前谢谢你。
使用fillna
(or combine_first
):
df['region'] = df['region'].map(dictionary).fillna(df['region'])
或利用 get
方法将值设置为默认值:
df['region'] = df['region'].map(lambda x: dictionary.get(x, x))
输出:
ID region
0 12 France
1 99 Germany
2 13 ESP
3 69 UK
4 17 Germany
5 2 Germany
我想你想要的是:
df.replace({"region": dictionary})
让它成为下面的Python Pandas DataFrame.
ID | region |
---|---|
12 | FRA |
99 | GER |
13 | ESP |
69 | UK |
17 | GER |
02 | GER |
使用下一个代码:
dictionary = {'GER': 'Germany', 'FRA': 'France'}
df['region'] = df['region'].map(dictionary)
我得到以下结果:
ID | region |
---|---|
12 | France |
99 | Germany |
13 | NaN |
69 | NaN |
17 | Germany |
02 | Germany |
我的想法是,字典中没有出现的值,保留它们以前的值。
ID | region |
---|---|
12 | France |
99 | Germany |
13 | ESP |
69 | UK |
17 | Germany |
02 | Germany |
我该怎么做?提前谢谢你。
使用fillna
(or combine_first
):
df['region'] = df['region'].map(dictionary).fillna(df['region'])
或利用 get
方法将值设置为默认值:
df['region'] = df['region'].map(lambda x: dictionary.get(x, x))
输出:
ID region
0 12 France
1 99 Germany
2 13 ESP
3 69 UK
4 17 Germany
5 2 Germany
我想你想要的是:
df.replace({"region": dictionary})