python - 如何在列中对齐两个熊猫数据框的值?
问题描述
我正在对梦幻超级联赛的足球数据进行一些分析。我已经为每个游戏周下载了 .txt 文件,其中包含该游戏的每个玩家的统计数据。
然而,由于球员离开和到达英超联赛,球员在每个比赛周文件中并没有完全对齐。该图显示了球员 Aaron Connolly 如何在第 1 场和第 4 场比赛之间进入联盟,从而抵消所有其他球员。
我想要实现的是两个数据集,其中同一个玩家在同一行。
我想要这个的原因是有 40 个游戏周,我使用循环来组合不同游戏周之间的数据并制作新列。
我查看了 pandas.align() 方法,但无法弄清楚如何在列值“名称”上对齐
编辑:有 40 个游戏周和超过 500 个条目。gameweek,所以我不能手动进入并对齐它们。Aaron Connolly 只是一个例子,但在不同的比赛周中有多个偏移量。我希望每个玩家在所有 40 个数据集中都位于同一行。
解决方案
只需使用setindex
:
df1 = pd.DataFrame({'a': [1,2, 3], 'b': [2, 34, 4]})
df2 = pd.DataFrame({'a': [1,4, 3], 'b': [2, 34, 4]})
aligned1, aligned2 = df1.set_index('a').align(df2.set_index('a'))
然后要name
恢复您的列,您可以执行以下操作:
aligned1 = aligned.reset_index()
推荐阅读
- python - Keras 报告类型错误:+ 的不支持的操作数类型:'NoneType' 和 'int'
- azure-container-service - 有关 Service Fabric 网格限制的任何更新
- angular - WebStorm - 使用展开运算符返回:错误 TS2488:类型“{}”必须具有返回迭代器的“[Symbol.iterator]()”方法
- android - Android:以编程方式更改导航视图所选项目的颜色
- html - 需要在两行 angular 6 中显示 ng-option
- entity-framework - 实体框架 ChangeTracker 如何知道属性已更改?
- c++ - IAccessible (MSAA):访问 Firefox/Chrome 会导致 Adobe Accessibility.api 调用
- wso2 - Wso2 故障序列错误处理标头
- c++ - 如何定义全局常量(Q)字符串?
- kubernetes - Kubernetes 上的 Schema Registry,可公开访问