如何根据 colb
更改 cola
上的值?例如,假设我想更改 ID = 1,4,7 的名称?
ID Name
1 Name1
2 Name2
3 Name3
4 Name4
5 Name5
6 Name6
7 Name7
8 Name8
我最好想使用字典,如下所示:
change = {
1: 'foo',
4: 'bar',
7: 'baz'
}
如果我使用这样的 map 应用更改字典:
df['Name'] = df['ID'].map(change)
但是,它只是更改了 1,4 和 7 的 ID。
ID Name
1 foo
2
3
4 bar
5
6
7 baz
8
是否只更改字典中的行并忽略其余行?获取结果:
ID Name
1 foo
2 Name2
3 Name3
4 bar
5 Name5
6 Name6
7 baz
8 Name8
最佳答案
添加fillna
或combine_first
:
df['Name'] = df['ID'].map(change).fillna(df['Name'])
print (df)
ID Name
0 1 foo
1 2 Name2
2 3 Name3
3 4 bar
4 5 Name5
5 6 Name6
6 7 baz
7 8 Name8
或者:
df['Name'] = df['ID'].map(change).combine_first(df['Name'])
print (df)
ID Name
0 1 foo
1 2 Name2
2 3 Name3
3 4 bar
4 5 Name5
5 6 Name6
6 7 baz
7 8 Name8
关于python - 如何根据不同的列更改一列中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44188967/