python - pandas - 比较 N 列并输出最大值(相等的列)
问题描述
好的 - 我不能完全通过这个 pandas-foo 。
我有关于相同数据的 N 个(假设为 4 个)数据源,我想知道每行具有相等值的数据源的最大数量以及该值。
所以一个样本输入将是:
source_1 source_2 source_3 source_4
100 100 98 100
我想在我的数据框中添加两列,max_sources = 3
并且max_value = 100
.
我可以用一个很好的老式哈希图来做到这一点,但我认为必须有一种方法可以用 pandas 来实现它 -equals
并且compare
是 1:1 但正确的总体思路。
解决方案
尝试:
# identify your sources
source_cols = ['source1', 'source2', 'source3', 'source4']
max_vals = df[source_cols].max(1)
df['max_sources'] = df[source_cols].eq(max_vals, axis=0).sum(1)
df['max_value'] = max_vals
推荐阅读
- django - IntegrityError - 1048,不能为空 - 无法保存验证数据
- javascript - 香草JS动画?
- pine-script - 如何创建带有偏移量(stepshift)的 Hala 指标和基于该指标的策略以及一个多头头寸的简单策略脚本
- java - 在 Java 中重命名平面文件的替代方法
- javascript - 如何修复 Sass 加载程序的 ValidationError?
- php - 如何按日期对回复进行排序 - 最新回复首先显示
- javascript - 属性更改后 addEventListener 未更新
- sql - SQL 代码未运行,收到“schema public 的权限被拒绝”错误消息
- css - 这个背景 css 属性是如何工作的?
- python - 有没有办法在pygame中接收来自xbox控制器触发器的输入?