要清理包含多個字串列的數據,需要按某些列對行進行分組並選擇最常見的值每個組中特定列的通用值。本文示範如何使用強大的 Pandas 庫完成此任務。
初始查詢中提供的程式碼包含一些錯誤,已在下方修正:
import pandas as pd source = pd.DataFrame({ 'Country': ['USA', 'USA', 'Russia', 'USA'], 'City': ['New York', 'New York', 'Saint Petersburg', 'New York'], 'Short Name': ['NY', 'New', 'Spb', 'NY']}) # Group by 'Country' and 'City' and calculate the most frequent 'Short Name' in each group result = source.groupby(['Country', 'City'])['Short Name'].apply(lambda x: pd.Series.mode(x)[0][0])
如果首選 DataFrame 作為結果:
result = source.groupby(['Country', 'City'])['Short Name'].agg(pd.Series.mode).to_frame()
如果您想為每個單獨的行mode:
result = source.groupby(['Country', 'City'])['Short Name'].apply(pd.Series.mode)
注意:如果您願意接受任何模式值作為選擇,您可以使用lambda 函數從系列中擷取第一個模式:
result = source.groupby(['Country', 'City'])['Short Name'].agg(lambda x: pd.Series.mode(x)[0])
以上是如何找到 Pandas DataFrame 每組最常見的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!