ホームページ >バックエンド開発 >Python チュートリアル >Pandas を使用してグループごとに一意の値をカウントするにはどうすればよいですか?
Pandas を使用したグループごとの一意の値のカウント
表形式のデータを操作する場合、多くの場合、特定のデータ内での一意の値の出現をカウントすることが必要になります。グループ。 Pandas ライブラリを使用して Python でこれを実現するには、groupby() メソッドと nunique() メソッドを利用できます。
問題の説明:
問題を説明するには、次のように考えます。次のデータセット:
ID | domain |
---|---|
123 | vk.com |
123 | vk.com |
123 | twitter.com |
456 | vk.com' |
456 | facebook.com |
456 | vk.com |
456 | google.com |
789 | twitter.com |
789 | vk.com |
当面のタスクは、各ドメイン内の一意の ID 値をカウントすることです。
解決策:
カウントするにはグループごとに一意の値を指定するには、次のコードを使用できます。
<code class="python">df = df.groupby('domain')['ID'].nunique()</code>
groupby() メソッドはドメイン列ごとにデータをグループ化し、nunique() メソッドは各グループ内での一意の ID の出現をカウントします。出力は、ドメイン名をインデックスとして、対応する一意のカウントを値として持つシリーズです。
domain vk.com 3 twitter.com 2 facebook.com 1 google.com 1
補足:
文字列操作の例:
<code class="python">df['clean_domain'] = df.domain.str.strip("'") df = df.groupby('clean_domain')['ID'].nunique()</code>
agg() の例:
<code class="python">df = df.groupby(by='domain', as_index=False).agg({'ID': pd.Series.nunique})</code>
以上がPandas を使用してグループごとに一意の値をカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。