簡體   English   中英

從 pandas dataframe 整體返回最大值,不基於列或行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM