python - 链接 2 个数据帧并使用查找返回一个值
问题描述
我是编码和数据方面的初学者,所以我能得到的任何帮助都会非常有帮助。
如果我有一个如下的数据框,那么每场比赛都是一个元组。
df1 = Team A Player 1.1 Team A Player 2.1 Team A Player 3.1
('Max', 'Hatteberg') ('Hatteberg', 'Tejada') ('Max', 'Rincon')
('Tejada', 'Brown') ('Hatteberg', 'Rincon') ('Hatteberg','Brown')
等等..
我有一个交叉表:
df2 = Max Hatteberg Tejada Brown Rincon
Max NaN -1.0 +2.0 -8.0 +5.0
Hatteberg +1.0 NaN +2.5 +3.0 0
Tejada -2.0 -2.5 NaN +5.5 -3.5
Brown +8.0 -3.0 -5.5 NaN +2.8
Rincon -5.0 0 +3.5 2.8 NaN
我希望每场比赛都返回一个值
df1 = matchups 1 matchups 2 matchups 3
+1.0 -2.5 -5.0
-5.5 0 -3.0
我试过了,
df1.applymap(lambda x : df2.lookup([x[0]],[x[1]])[0])
但它回来了,
('One or more row labels was not found', 'occurred at index Team A Player 1.1')
我在引用两个数据框并返回值时遇到问题。有人可以帮我吗?提前致谢
解决方案
更像是您在 df1 元组中有一些价值,请参阅 df2 中的 None 值
你可以做reindex
之前apply
lookup
name=set(list(itertools.chain(*list(itertools.chain(*df1.values.tolist())))))
df2=df2.reindex(name).reindex(name,axis=1)
df1.applymap(lambda x : df2.lookup([x[0]],[x[1]])[0])
推荐阅读
- reactjs - 将测试库反应到HaveBeenCalledTimes 复选框测试失败
- vue.js - vue init webpack webapp 命令到达错误
- windows - 在 HKEY 中应用值取决于使用 Inno Setup 选择的语言
- javascript - Mongoose findOneAndUpdate 仅在没有值或为 null 时更新字段,否则保持原样
- python - 为什么这会在我的计数中不断增加额外的 1?
- sql-server - SqlConnection 和 Dapper 如何处理 Transactions
- java - 无法解析 IntelliJ 中 org.springframework.data.annotation.Id 的符号“Id”
- sql - 转换成 PostgreSQL 查询
- python - 使用 ipywidgets 刷新按钮
- python - 循环内的 Python 多处理池