假设我有以下Pandas数据帧,其中'key'
列只包含唯一的字符串:
import pandas as pd
df = pd.DataFrame({'key':['b','d','c','a','e','f'], 'value': [0,0,0,0,0,0]})
df
key value
0 b 0
1 d 0
2 c 0
3 a 0
4 e 0
5 f 0
现在我有了一个唯一键列表和一个相应值列表:
keys = ['a', 'b', 'c', 'd']
values = [1, 2, 3, 4]
我想以列表的相同顺序更新'value'
列,这样每一行都匹配'key'
和'value'
(a
到1
、'b'
到2
、'c'
到3
、'd'
到4
).我使用的是以下代码,但DataFrame似乎从上到下更新值,我不太理解这一点
df.loc[df['key'].isin(keys),'value'] = values
df
key value
0 b 1
1 d 2
2 c 3
3 a 4
4 e 0
5 f 0
澄清一下,我希望能得到
key value
0 b 2
1 d 4
2 c 3
3 a 1
4 e 0
5 f 0
有什么建议吗?