python - 根据熊猫中的另一个数据框更改列中的值
问题描述
所以我有2个数据框,一个当我有球员统计数据和他的ID时,第二个当我有ID和球员真实姓名时。我想将第一个数据框中的列从玩家 id 更改为第二个数据框上的玩家真实姓名。
data_1 = {'ID_first_player':['1', '2', '3', '4'],
'ID_second_player':['1', '4', '3', '8'],
'Points':[20, 21, 19, 18]}
data_2 = {'ID':['1', '2', '3', '4', '5', '6', '7', '8],
'RealName':['Tom', 'mark', 'nick', 'dan', 'krish', 'jack', 'maxim', 'ken']}
df_1 = pd.DataFrame(data_1)
df_2 = pd.DataFrame(data_2)
result_data = {'Name_first_player':['Tom', 'mark', 'nick', 'dan'],
'Name_second_player':['Tom', 'dan', 'nick', 'ken'],
'Points':[20, 21, 19, 18]}
df_result = pd.DataFrame(result_data)
我就这样累了但是没用
df_1['ID_first_player'] = df_2[df_2['ID'] == df_1['ID_first_player']].iloc[:,1]
有人可以帮忙吗?
解决方案
您可以使用.map
:
m = df_2.set_index("ID")["RealName"]
df_1.ID_first_player = df_1.ID_first_player.map(m)
df_1.ID_second_player = df_1.ID_second_player.map(m)
print(df_1)
印刷:
ID_first_player ID_second_player Points
0 Tom Tom 20
1 mark dan 21
2 nick nick 19
3 dan ken 18
推荐阅读
- r - 通过匹配从一个表中提取值到另一个表
- ios - SwiftUI IOS CorePlot 发送 API 数据到 Graph
- javascript - 如何根据订单项自定义属性计算价格?
- reactjs - 是的 - 如何检查所有数组是否具有相同的长度
- python - 将 Flatten 层从 PyTorch 转换为 Tensorflow - 等效于 start_dim 和 end_dim
- python - 如何在 python 中使用 plotly 绘制累积数据?
- internationalization - react-intl:使用 .js 文件而不是 .json 文件进行消息存储
- powerbi - 通过编写 DAX 公式查找每个覆盖的通话持续时间
- reactjs - 如何使用钩子进行映射
- assembly - 当我在 nasm 中使用它们时,真正代表什么符号和变量?