python - 熊猫:从匹配第一个元素的元组列表中创建列
问题描述
我有一个示例数据框,例如:
cid pos
0 11 29
1 22 29
2 22 29
3 33 29
4 44 29
现在是一个元组列表,如:
[(11, 3), (22, 1), (33, 4), (44, 4), (55, 7), (66, 2)]
我想从元组列表(第二个元素)中创建另一列。仅当 df 列中的第一个元素匹配时cid
:
喜欢:
cid pos new_pos
0 11 29 3
1 22 29 1
2 22 29 1
3 33 29 4
4 44 29 4
熊猫初学者,任何帮助都会很棒!谢谢你
解决方案
您可以将元组列表转换为字典并在其map
上使用:
b = [(11, 3), (22, 1), (33, 4), (44, 4), (55, 7), (66, 2)]
df["b"] = df["cid"].map(dict(b))
print(df)
cid pos b
0 11 29 3
1 22 29 1
2 22 29 1
3 33 29 4
4 44 29 4