Pandas GroupBy を使用してデータをグループ化し、グループ内で並べ替える方法

DDD
リリース: 2024-10-20 17:22:02
オリジナル
332 人が閲覧しました

How to Group Data and Sort Within Groups Using Pandas GroupBy?

Pandas GroupBy とグループ内での並べ替え

複数の列を持つ DataFrame があり、2 つの列ごとに行をグループ化したい状況を考えてみましょう。グループ化した後、カウント列で降順に並べ替えるなど、各グループ内の集計結果をさらに並べ替える必要がある場合があります。これを実現する方法は次のとおりです。

データを複数の列でグループ化し、グループ内で並べ替えるには、groupby() 関数と sort_values() 関数を組み合わせることができます。たとえば、列数、ジョブ、およびソースを含む DataFrame があるとします。

<code class="python">import pandas as pd

df = pd.DataFrame({'count': [2, 4, 6, 3, 7, 5, 3, 2, 4, 1],
                  'job': ['sales','sales','sales','sales','sales', 'market','market','market','market','market'],
                  'source': ['A','B','C','D','E','A','B','C','D','E']})</code>
ログイン後にコピー

各ジョブとソースの組み合わせの全体的な数を取得するには、次の操作を実行できます。

<code class="python">df.groupby(['job','source']).agg({'count':sum})</code>
ログイン後にコピー

次に、各グループ内で count 列を降順に並べ替え、上位 3 行のみを取得するには、次の手順を実行します。

<code class="python">result = df.sort_values(['job','count'],ascending=False).groupby('job').head(3)</code>
ログイン後にコピー

これにより、上位 3 行を含む DataFrame が返されます。各ジョブ グループ。カウント列によって降順に並べ替えられます。結果の DataFrame は次のようになります:

<code class="python">print(result)

   count     job source
4      7   sales      E
2      6   sales      C
1      4   sales      B
5      5  market      A
8      4  market      D
6      3  market      B</code>
ログイン後にコピー

以上がPandas GroupBy を使用してデータをグループ化し、グループ内で並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!