pandas のグループ内での並べ替え
pandas データフレームを使用する場合、多くの場合、特定の列ごとにデータをグループ化し、追加の操作を実行する必要があります。それらのグループ内で。一般的な要件の 1 つは、グループ化されたデータを特定の基準に基づいて並べ替えることです。
これを実現するには、groupby 関数を sort_values 関数と連結できます。例として、列 count、job、source を持つデータフレーム df を考えてみましょう。
In [167]: df Out[167]: count job source 0 2 sales A 1 4 sales B 2 6 sales C 3 3 sales D 4 7 sales E 5 5 market A 6 3 market B 7 2 market C 8 4 market D 9 1 market E
データをジョブとソースでグループ化し、集計結果を count で降順に並べ替える場合は、次のようにします。次の操作を行うことができます:
In [168]: df.groupby(['job','source']).agg({'count':sum})
これにより、各グループの集計されたカウント値を含む新しいデータフレームが作成されます。ただし、結果のデータフレームはカウントによって並べ替えられません。データフレームを並べ替えるには、sort_values 関数を使用できます。
In [34]: df.sort_values(['job','count'],ascending=False)
これにより、データフレームが最初にジョブごとに並べ替えられ、次にカウントごとに降順で並べ替えられます。結果のデータフレームは次のようになります:
Out[35]: 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
各グループの上位 3 行を取得するには、head 関数を使用できます:
In [34]: df.sort_values(['job','count'],ascending=False).groupby('job').head(3)
これにより、新しいデータフレームが作成されます。これには、各グループの上位 3 行がカウントの降順で並べ替えられています。
Out[35]: 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
以上がPandas DataFrames のグループ内でデータを並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。