我正在寻找一种方法来获得整个 pandas 中的最高频率,而不是在特定的列中。我已经查看了值计数,但似乎以特定于列的方式工作。有办法做到吗?
最佳答案
使用DataFrame.stack
与 Series.mode
对于最高值,对于首先按位置选择:
df = pd.DataFrame({
'B':[4,5,4,5,4,4],
'C':[7,8,9,4,2,3],
'D':[1,3,5,7,1,0],
'E':[5,3,6,9,2,4],
})
a = df.stack().mode().iat[0]
print (a)
4
或者如果需要频率也可以使用 Series.value_counts
:
s = df.stack().value_counts()
print (s)
4 6
5 4
3 3
9 2
7 2
2 2
1 2
8 1
6 1
0 1
dtype: int64
print (s.index[0])
4
print (s.iat[0])
6
关于python-3.x - 数据框中的最高频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60544330/