複数の文字列列を含むデータをクリーンアップするには、特定の列ごとに行をグループ化し、最も一般的な値を選択する必要があります。各グループ内の特定の列に共通の値。この記事では、強力な 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)
注: 任意のモード値を選択として受け入れる場合は、系列から最初のモードを抽出するラムダ関数を使用できます。 :
result = source.groupby(['Country', 'City'])['Short Name'].agg(lambda x: pd.Series.mode(x)[0])
以上がPandas DataFrame の各グループで最も頻度の高い値を見つける方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。