python - Pandas :从匹配第一个元素的元组列表中创建列

标签 python pandas

我有一个示例数据框,如:

          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
Pandas 初学者,任何帮助都会很棒!谢谢你

最佳答案

您可以将元组列表转换为字典并使用 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

关于python - Pandas :从匹配第一个元素的元组列表中创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64357348/

相关文章:

python - imaplib2 : imap. gmail.com 处理程序 BYE 响应:系统错误

python - 在 Python 中为 OAuth 签名请求

python - Pandas DataFrame 中的点表示法是如何实现的?

python - 如何使用数据发生变化的位置索引 Pandas 数据框

python - 更新同一索引的行

python - 日期的 Pandas 分位数函数?

python - 尝试使用 scipy 插入 2D 数据 - 只获取 NaN 数组

python - 如何计算python中组内两点之间的距离,对于许多后续点

python-3.x - pandas 在 Openshift 上工作吗?

Python:自动更正