我正在尝试从整个 Pandas 数据框中获取最大值。我对它来自哪一行或哪一列不感兴趣。我只对 DataFrame 中的单个最大值感兴趣。
这是我的数据框:
df = pd.DataFrame({'group1': ['a','a','a','b','b','b','c','c','d','d','d','d','d'],
'group2': ['c','c','d','d','d','e','f','f','e','d','d','d','e'],
'value1': [1.1,2,3,4,5,6,7,8,9,1,2,3,4],
'value2': [7.1,8,9,10,11,12,43,12,34,5,6,2,3]})
这就是它的样子:
group1 group2 value1 value2
0 a c 1.1 7.1
1 a c 2.0 8.0
2 a d 3.0 9.0
3 b d 4.0 10.0
4 b d 5.0 11.0
5 b e 6.0 12.0
6 c f 7.0 43.0
7 c f 8.0 12.0
8 d e 9.0 34.0
9 d d 1.0 5.0
10 d d 2.0 6.0
11 d d 3.0 2.0
12 d e 4.0 3.0
预期输出:
43.0
我假设 df.max() 会完成这项工作,但它会为每列返回一个最大值,但我对此不感兴趣。我需要整个数据帧的最大值。
最佳答案
可以使用df.to_numpy().max()
获得DataFrame中所有值的最大值, 或为 pandas < 0.24.0
我们使用 df.values.max()
:
In [10]: df.to_numpy().max()
Out[10]: 'f'
最大值为 f
而不是 43.0,因为在 CPython2 中,
In [11]: 'f' > 43.0
Out[11]: True
在 CPython2 中,Objects of different types ... are
ordered by their type names .所以任何str
比较大于任何 int
自从 'str' > 'int'
.
在 Python3 中,字符串和整数的比较会产生 TypeError
.
要仅在数字列中查找最大值,请使用
df.select_dtypes(include=[np.number]).max()
关于python - 从 pandas 数据帧整体返回最大值,而不是基于列或行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24571005/