首页 > 解决方案 > 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 但正确的总体思路。

标签: pythonpandas

解决方案


尝试:

# 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

推荐阅读