在 Pandas DataFrame 中尋找最大值
在 pandas 中,辨識包含特定列最大值的行需要一種簡單的方法。
使用 pandas.DataFrame.idxmax
pandas 函式庫提供了 idxmax 函數,可以直接滿足此需求。它會檢索給定列中具有最大值的行的索引標籤。請考慮以下範例:
<code class="python">import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 3), columns=['A', 'B', 'C']) print(df) A B C 0 1.232853 -1.979459 -0.573626 1 0.140767 0.394940 1.068890 2 0.742023 1.343977 -0.579745 3 2.125299 -0.649328 -0.211692 4 -0.187253 1.908618 -1.862934 print(df['A'].idxmax()) # row index with maximum value in column 'A' print(df['B'].idxmax()) # row index with maximum value in column 'B' print(df['C'].idxmax()) # row index with maximum value in column 'C' # Output 3 # row index 3 4 # row index 4 1 # row index 1</code>
使用 numpy.argmax 的替代方法
或者,您可以使用 numpy.argmax 來獲得相同的結果。它傳回位置索引而不是標籤索引。請記住,argmax 曾經被稱為 idxmax,但後來被後者取代。
歷史背景:行標籤與整數索引
中pandas 的早期版本,行標籤由整數索引而不是標籤表示。這種做法雖然現在已經過時,但在許多常用的應用程式中仍然存在。
為了適應向標記行索引的轉變,argmax 函數被修改為傳回包含最大元素的行索引內的位置索引。此變更旨在減輕使用整數索引引起的混亂,特別是在重複行標籤等情況下。
處理重複行標籤
值得注意的是 idxmax 回傳行標籤,而不是整數。在有重複行標籤的情況下,使用 idxmax 就不夠了。要在這種情況下取得位置索引,您可能需要手動從索引標籤中提取它。
以上是如何找到 Pandas DataFrame 特定列中具有最大值的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!