3

SQL データベースから取得して pandas データフレームに読み込む一連のデータがあります。結果の df は約 2 億 5000 万行で、毎日増加しています。したがって、テーブルをピボットして、はるかに小さなテーブル (数千行) を使用できるようにしたいと考えています。

テーブルは次のようになりますが、はるかに大きくなります。

data

  report_date             item_id        views   category
0  2013-06-01                   2            3          a
1  2013-06-01                   2            2          b
2  2013-06-01                   5           16          a 
3  2013-06-01                   2            4          c
4  2013-06-01                   2            5          d

「カテゴリ」列を無視して、日付と item_id ごとにビューの合計を取得することで、これをもっと小さくしたいと思います。

私はこれをやっています:

pivot = data.pivot_table(values=['views'], rows=['report_date','item_id'], aggfunc='sum')

                                 views  
report_date item_id
2013-06-01        2                 14           
2013-06-01        5                 16

ここで、データ範囲が数か月、数千の item_id で、これがはるかに大きいと想像してください。item_id = 2 および report_date の '2013-06-01' と '2013-06-10' の間、またはそれらの行に沿ったものの合計ビューを選択したいと思います。

数時間続けて検索しましたが、「行」(つまり、report_date と item_id) セクションの値を選択および/または除外する方法がわかりません。「値」セクション(例:ビュー)のデータのみをフィルタリング/選択できます。この質問も同様で、最後に質問者が私が尋ねているのと同じ質問にコメントしましたが、回答はありませんでした。私はただそれに注意を向けようとしたかっただけです。

Python pandas で作成されたピボット テーブルからのフィルタリングと選択

私はすべての助けに感謝します。このサイトとコミュニティは非常に貴重です。

4

1 に答える 1