Python,Pandas:将数据框架与字典相结合(按条件)



大家好,

我有一个类似的数据帧:

id    |    name    |    personnelNumber
1     |    abcd    |    00013
2     |    efgh    |    00142
19    |    abcd    |    00013
84    |    abcd    |    00013
103   |    efgh    |    00142
117   |    mnop    |    00087

我还有一本字典,里面有随机值和数据帧中的"personalNumber":

{'00013': 41, '00087': 725, '00142': 19}

我的问题是:有没有一种方法可以根据匹配的"personalNumber"将值添加到新列中?我想收到这样的东西:

id    |    name    |    personnelNumber    |    value
1     |    abcd    |    00013              |    41
2     |    efgh    |    00142              |    19
19    |    abcd    |    00013              |    41
84    |    abcd    |    00013              |    41
103   |    efgh    |    00142              |    19
117   |    mnop    |    00087              |    725

感谢您的建议和帮助!

假设personnelNumber的类型为string(因为前导零(,则可以使用pd.Series.map

d = {'00013': 41, '00087': 725, '00142': 19}
df['value'] = df.personnelNumber.map(d)
df

输出:

id  name personnelNumber  value
0    1  abcd           00013     41
1    2  efgh           00142     19
2   19  abcd           00013     41
3   84  abcd           00013     41
4  103  efgh           00142     19
5  117  mnop           00087    725

最新更新