[英]return max value from pandas dataframe as a whole, not based on column or rows
我正在嘗試從熊貓 dataframe 整體中獲取最大值。 我對它來自哪一行或哪一列不感興趣。 我只對 DataFrame 中的單個最大值感興趣。
這是我的 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
預期 output:
43.0
我假設 df.max() 會完成這項工作,但它會為每列返回一個最大值,但我對此不感興趣。 我需要整個 dataframe 的最大值。
DataFrame 中所有值的最大值可以使用df.to_numpy().max()
,或者對於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 中,不同類型的對象......按它們的類型名稱排序。 所以任何str
都比任何int
因為'str' > 'int'
。
在 Python3 中,字符串和整數的比較會引發TypeError
。
要僅在數字列中查找最大值,請使用
df.select_dtypes(include=[np.number]).max()
您好,最簡單的答案如下。 回答:
df.max().max()
解釋:
series = df.max()
給你一個包含每列最大值的系列。
因此series.max()
為您提供整個數據幀的最大值。
:) 最好的答案通常是最簡單的
另一種方式:
df.melt().value.max()
本質上, melt()
將 DataFrame 轉換為一長列。
Max可以在這兩個步驟中找到:
maxForRow = allData.max(axis=0) #max for each row
globalMax = maxForRow.max(); #max across all rows
對於最大值,請檢查上一個答案...對於值的最大值,請使用例如:
val_cols = [c for c in df.columns if c.startswith('val')]
print df[val_cols].max()
最大使用 numpy
np.max(df.values)
或者
np.nanmax(df.values)
或在 pandas
df.values.max()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.