Pandas实现:根据关联eventId添加related_player列
解决方案
给定Pandas DataFrame:
import pandas as pd import numpy as np data = {'eventId': [1, 2, 3, 4, 5], 'player': ['A', 'B', 'C', 'D', 'E'], 'related_eventId': [2, 1, 4, 3, np.nan]} df = pd.DataFrame(data)
要添加related_player列,填充对应related_eventId的玩家名称,可按以下步骤实现:
- 构建
eventId与player的映射关系,利用DataFrame索引转换生成映射Series - 用
map()方法将related_eventId匹配到对应的玩家名称,自动处理空值
代码实现
# 生成eventId到player的映射 event_player_map = df.set_index('eventId')['player'] # 添加目标列 df['related_player'] = df['related_eventId'].map(event_player_map)
执行结果
处理后的DataFrame如下:
| eventId | player | related_eventId | related_player |
|---|---|---|---|
| 1 | A | 2.0 | B |
| 2 | B | 1.0 | A |
| 3 | C | 4.0 | D |
| 4 | D | 3.0 | C |
| 5 | E | NaN | NaN |
内容的提问来源于stack exchange,提问作者Delopera
相关产品推荐
相关产品推荐

