ホームページ >バックエンド開発 >Python チュートリアル >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 サイトの他の関連記事を参照してください。