假設您有一個包含多個字串列的資料框。前兩列的每種組合在第三列中只能有一個有效值。您需要透過按前兩列對資料框進行分組並為每個組合選擇第三列的最常見值來一致地清理資料。
以下程式碼示範了嘗試實現此目的:
import pandas as pd<br>from scipy import stats<p>source = pd.DataFrame({</p><pre class="brush:php;toolbar:false">'Country': ['USA', 'USA', 'Russia', 'USA'], 'City': ['New-York', 'New-York', 'Sankt-Petersburg', 'New-York'], 'Short name': ['NY', 'New', 'Spb', 'NY']})
source.groupby(['國家','城市']).agg(lambda x: stats.mode(x['簡稱'])[0])
但是,最後一行程式碼失敗並出現KeyError。及更高版本,請使用以下程式碼:
source.groupby(['Country','City'])['Short name'].agg(pd.Series.mode)<p><br></p><p>此程式碼使用Pandas 0.16 中引入的pd.Series.mode函數來找出最常見的值</p><br><br><h4>處理多種模式的替代方案</h4><br><p>Series.mode 函數可以有效地處理具有多種模式的情況:<br></p>
雖然您可以使用Python 中的stats.mode,但它不能很好地處理多種模式,並且可能會引發統計錯誤。
以上是如何有效率地找到 Pandas DataFrame 組中最常見的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!