要清理具有多個字串列的數據,請按前兩列分組並為第三列選擇最常見的值在每個組合中。
提供的程式碼失敗並顯示KeyError,並且僅按 City 列分組會導致斷言錯誤。需要一個強大的解決方案。
在pandas v0.16 之後,pd.Series.mode 為此任務提供了一種多功能且高效的方法:
source.groupby(['Country', 'City'])['Short name'].agg(pd.Series.mode)
如果組內有多種模式,Series.mode 會傳回一個清單的價值觀。對於單一結果,應用 lambda 函數:
source.groupby(['Country', 'City'])['Short name'].agg(lambda x: pd.Series.mode(x)[0])
也可以使用 scipy.stats.mode,但遇到多種模式時會引發錯誤。
以上是如何在分組後找到 Pandas DataFrame 中最常見的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!