Pandas DataFrames のグループ内でデータを並べ替えるにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-20 17:27:02
オリジナル
248 人が閲覧しました

How to Sort Data Within Groups in Pandas DataFrames?

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 サイトの他の関連記事を参照してください。

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