如何找出大熊猫中最大值出现多少次?



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

我有一个数据帧,其中包含许多具有不同值的行,并且想知道每行出现最大值的频率。我使用 df2 ['MAX_Value']=df2.max(axis=1( 来获得每行的最大值。

这是我的数据帧示例:

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

谢谢!

assign与 comapring 按eq和每行sum一起使用:

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

如果我理解你的任务正确:

由于您已经有列MAX_value,您可以执行以下操作:

df2.MAX_value.value_counts()

让我知道这是否是你要找的! :)

您也可以使用简单的分组:

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

最新更新