ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame グループで最も一般的な値を効率的に見つけるにはどうすればよいですか?
複数の文字列列を含むデータ フレームがあるとします。最初の 2 つの列の各組み合わせでは、3 番目の列に有効な値が 1 つだけ含まれている必要があります。データ フレームを最初の 2 列でグループ化し、組み合わせごとに 3 番目の列の最も一般的な値を選択することで、一貫してデータをクリーンアップする必要があります。
次のコードは、これを達成する試み:
pandas as pd<br>from scipy import stats</p> <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([' Country','City']).agg(lambda x: stats.mode(x['短いname'])[0])
しかし、コードの最後の行が KeyError で失敗します。これを修正するにはどうすればよいですか。問題?
Pandas バージョン 0.16 の場合その後、次を使用しますコード:
source.groupby([' Country','City'])['Short name'].agg(pd.Series.mode)
このコードは、Pandas 0.16 で導入された pd.Series.mode 関数を使用して、最も一般的な値を見つけます
Series.mode 関数は、複数のモードのケースを処理します。実質的に:
< h4>の代替案
Python から統計情報.mode を使用することもできますが、複数のモードを適切に処理できないため、StatisticsError が発生する可能性があります。したがって、これはお勧めできません。
以上がPandas DataFrame グループで最も一般的な値を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。