您的任務是清理包含三個字串列的資料框,確保第三列包含前兩列的指定組合的正確值。您提供的程式碼片段嘗試按前兩列對資料框進行分組,並為每個組合選擇第三列的最常見值。但是,您在嘗試執行 agg 函數時遇到問題。
您在程式碼中使用的語法已過時。相反,請使用 pd.Series.mode 函數,該函數在 Pandas 0.16 及更高版本中可用。該函數傳回一系列字串中最常見的值。應用方法如下:
source.groupby(['Country','City'])['Short name'].agg(pd.Series.mode)
此語法按「國家」和「城市」對資料框進行分組,將pd.Series.mode 函數應用於每個群組的「簡稱」列,並顯示結果。
如果您需要將輸出作為DataFrame,請使用此line:
source.groupby(['Country','City'])['Short name'].agg(pd.Series.mode).to_frame()
pd.Series.mode函數也可以有效地處理存在多種模式的情況。例如,如果多個值以與最常見值相同的頻率出現,它們將作為模式清單傳回。
您可以使用Python標準函式庫中的statistics.mode函數。然而,這種方法在處理多種模式時表現不佳。當沒有一個最常見的值時,它會引發統計錯誤。
以上是如何在分組後找到 Pandas DataFrame 列中最常見的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!