Python 如何找出最大值在大熊猫中出现的次数?
我想知道如何解决熊猫的以下问题: 我有一个数据框,其中有许多行具有不同的值,我想了解每行出现最高值的频率。我使用了df2['MAX_Value']=df2.MAX(axis=1)来获得每行的最高值 这是我的数据帧的一个示例:Python 如何找出最大值在大熊猫中出现的次数?,python,pandas,dataframe,max,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 谢谢大家! 与“按行计算”和“按行计算总和”一起使用: max_val = df2.max(axis=1) count_m
Col1 Col2 Col3 Col4 Col5 Col6 MAX_Value
0 5 6 6 6 3 6
谢谢大家! 与“按行计算”和“按行计算总和”一起使用:
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)
详细信息:
print (df2.eq(max_val, axis=0))
Col1 Col2 Col3 Col4 Col5 Col6
0 False False True True True False
如果我理解你的任务是正确的: 因为您已经有了列MAX_值,所以可以执行以下操作:
df2.MAX_value.value_counts()
让我知道这是否是您要找的!:) 您也可以使用一个简单的groupby:
df2.groupby('MAX_Value').Col1.count()
预期产量是多少?新列由
3
填写?或者是带有1
的系列,因为MAX\u value
中只有一个值6
?是的,这是预期的输出,我没有得到每行出现最高值的次数(3)!!:-)好的,所以需要df2.MAX\u value.value\u counts()
?不,我用了你的第一个建议df=df2.assign(MAX\u value=MAX\u val,No=count\u MAX)print(df)-效果很好!好吧,我有点困惑。如果我的答案有帮助,别忘了——点击答案旁边的复选标记,将其从灰色变为填充。谢谢
df2.groupby('MAX_Value').Col1.count()