如何找出熊猫出现最大值的次数?

时间:2018-06-29 11:40:01

标签: python pandas dataframe max

我想知道如何解决熊猫中的以下问题:

我有一个数据框,其中有许多行具有不同的值,并且想找出每行出现最高值的频率。我已经使用df2 ['MAX_Value'] = df2.max(axis = 1)来获取每行的最大值。

这是我的数据框示例:

Col1 Col2 Col3 Col4 Col5 Col6 MAX_Value 
0      5   6    6    6    3     6

谢谢!

3 个答案:

答案 0 :(得分:0)

assign与每行eqsum共同映射:

max_val = df2.max(axis=1)
count_max = df2.eq(max_val, axis=0).sum(axis=1)

要提高性能,可以使用numpy

arr = df2.values
max_val = arr.max(axis=1)
count_max = (arr == max_val[:, None]).sum(axis=1)

df = df2.assign(MAX_Value = max_val, No = count_max)
print (df)
   Col1  Col2  Col3  Col4  Col5  Col6  MAX_Value  No
0     0     5     6     6     6     3          6   3

详细信息

print (df2.eq(max_val, axis=0))
    Col1   Col2  Col3  Col4  Col5   Col6
0  False  False  True  True  True  False

答案 1 :(得分:0)

如果我理解您的要求是正确的:

由于您已经具有MAX_value列,您可以这样做:

df2.MAX_value.value_counts()

让我知道这是否是您想要的! :)

答案 2 :(得分:0)

您也可以只使用一个简单的groupby:

df2.groupby('MAX_Value').Col1.count()