私が実務でよく使うものの1つがgroupbyで、例えば商品カテゴリー毎に合計やばらつきを確認したい場合などが挙げられます。無論、SQLでも同様のことは大抵できてしまいますが、例えば形態素解析した結果の単語ごとの集計を書けたい場合などPythonで一気通貫でやる場合にはpandasを使うのが便利ですね。
groupby
その名の通りDataFrameをgroupbyで集計します。groupbyの戻り値で得られるGroupByオブジェクトに対しmean(), min(), max(), sum()などのメソッドを適用すると、グループごとの平均、最小値、最大値、合計などの統計量を算出することが可能です。使い方は簡単ですので、サンプルを見てみましょう。カテゴリーとタグ毎になんらかの量が設定されているDataFrameに対し、集計をかけてみます。引数に集計対象の列名を設定します。複数でgroupbyを書けたい場合はリストで設定します。
df = pd.DataFrame([['cate1', 'tag1', 150],['cate1', 'tag2', 210],['cate2', 'tag2', 80],['cate2', 'tag1', 310], ], columns=['category', 'tag', 'value']) # category tag value # 0 cate1 tag1 150 # 1 cate1 tag2 210 # 2 cate2 tag2 80 # 3 cate2 tag1 310 # categoryごとの合計を算出する df.groupby('category').sum() # value # category # cate1 360 # cate2 390 # category、tagごとの件数を算出する df.groupby(['category', 'tag']).count() # value # category tag # cate1 tag1 1 # tag2 1 # cate2 tag1 1 # tag2 1 # tagごとのばらつきを算出する df.groupby(['tag']).std() # value # tag # tag1 113.137085 # tag2 91.923882
いかがでしょうか。集計が簡単に使用できますので便利ですね。