python - 从 pandas 数据帧整体返回最大值,而不是基于列或行

标签 python pandas max dataframe

我正在尝试从整个 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/

相关文章:

save - YII + beforeSave() + 从表行中获取最大值

python - 如何制作自动滚动的wx.grid表格?

python - 将 "zero-columns"替换为 numpy 数组中的值

javascript - 查找 JavaScript 数组中最大值的键

r - R中的订单统计?

python - 按天重新采样并对具有日期时间开始和日期时间结束的 DataFrame 进行分类

python - 使用 python ElementTree 的 itertree 函数并将修改后的树写入输出文件

python - 在Thrift Python服务器上,如何使用TThreadPoolServer配置池中的最大线程数?

python - 使用包含文档作为字节的对象导出 Pandas DataFrame 时出现问题

python - 使用 Pandas 对不需要的 DataFrame 进行排序