Python 从panda dataframe作为一个整体返回最大值,而不是基于列或行

Python 从panda dataframe作为一个整体返回最大值,而不是基于列或行,python,pandas,max,dataframe,Python,Pandas,Max,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'],

我试图从熊猫数据帧整体上获取最大值。我对它来自哪一行或哪一列不感兴趣。我只对数据帧中的单个最大值感兴趣

这是我的数据框:

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()可以完成这项工作,但它会为每列返回一个max值,但我对此不感兴趣。我需要整个数据帧的最大值

数据帧中所有值的最大值可以使用
df.to_numpy().max()
获得,或者对于
pandas<0.24.0
我们使用
df.values.max()

最大值为
f
而不是43.0,因为在CPython2中

In [11]: 'f' > 43.0
Out[11]: True
在CPython2中。所以任何
str
都比任何
int
要大,因为
'str'>'int'

在Python3中,字符串和int的比较会引发
TypeError


要仅在数值列中查找最大值,请使用

df.select_dtypes(include=[np.number]).max()

对于最大值,请检查前面的答案。。。 对于最大值,使用例如:

val_cols = [c for c in df.columns if c.startswith('val')]
print df[val_cols].max()

Max可在以下两个步骤中找到:

maxForRow = allData.max(axis=0) #max for each row
globalMax = maxForRow.max(); #max across all rows

嗨,最简单的答案如下。 答复:

说明:
series=df.max()
提供一个包含每列最大值的序列
因此
series.max()
为您提供了整个数据帧的最大值

:)最佳答案通常是最简单的

另一种方式:

df.melt().value.max()

本质上
melt()
将数据帧转换为一个长列。

max(df.max(axis=1))
您想要什么?这假设您只对数值感兴趣?另外,对于
df.max()
的作用,您也非常清楚,为什么要投反对票?我误解了df.max(),如果这是原因的话?不知道,不是我我对这个问题没有太大的问题不是直接针对你的EdChum,但是非常感谢你的输入!还有很多需要学习的地方…还有
max(df.max())
也将返回
'f'
也许值得指出,因此,如何跳过字符串并获得最大数值?@Sigur:
df.选择数据类型(include=[np.number]).max()
。如何对特定列执行此操作:
col1
?我尝试了
df['col1']
但没有。
df['col1'].max()
应该在
col1
列中返回最大值。如果这对您不起作用,请发布一个新问题,其中包含您的数据框架的一个小样本(将类似
df.head().的内容发布到dict('list')
会有很大帮助)。
df.max().max()
df.melt().value.max()