Boo*_*d16 27 python max dataframe pandas
我试图从熊猫数据框中获取最大值.我对它来自哪个行或列不感兴趣.我只对数据帧中的单个最大值感兴趣.
这是我的数据帧:
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]})
Run Code Online (Sandbox Code Playgroud)
这就是它的样子:
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
Run Code Online (Sandbox Code Playgroud)
预期产量:
43.0
Run Code Online (Sandbox Code Playgroud)
我假设df.max()会完成这项工作,但它返回每列的最大值,但我对此不感兴趣.我需要整个数据帧的最大值.
unu*_*tbu 45
可以使用df.values.max()以下方法获取DataFrame中所有值的最大值:
In [10]: df.values.max()
Out[10]: 'f'
Run Code Online (Sandbox Code Playgroud)
f在CPython2中,最大值不是43.0,而是
In [11]: 'f' > 43.0
Out[11]: True
Run Code Online (Sandbox Code Playgroud)
在CPython2中,不同类型的对象......按其类型名称排序.因此,任何str比喻为比更大int,因为'str' > 'int'.
在Python3中,字符串和整数的比较提出了一个TypeError.
要仅在数字列中查找最大值,请使用
df.select_dtypes(include=[np.number]).max()
Run Code Online (Sandbox Code Playgroud)
Ril*_*yin 12
嗨,最简单的答案如下.回答:
df.max().max()
Run Code Online (Sandbox Code Playgroud)
说明:series = df.max()为您提供一个包含每列最大值的Series.
因此,series.max()为您提供整个数据帧的最大值.
:)最好的答案通常是最简单的
使用 numpy 最大值
np.max(df.values)
Run Code Online (Sandbox Code Playgroud)
或者
np.nanmax(df.values)
Run Code Online (Sandbox Code Playgroud)
或者在熊猫中
df.values.max()
Run Code Online (Sandbox Code Playgroud)