2 要素の階層インデックス ("month" と "item_id") を持つ pandas データフレームがあります。各行は特定の月の特定のアイテムを表し、いくつかの関心のある数値メジャーの列があります。詳細は関係ないので、ここでは目的のために列 X があるとだけ言います。
私の問題は、アイテムが観察された月によって、連続している場合もそうでない場合もあるという事実に起因しています。そのアイテムの観測がある 1、2、...、n 番目の月について、すべてのアイテムにわたって X の平均を計算する必要があります。
言い換えれば、私の結果の最初の行は、各アイテムのデータフレームの最初の行のすべてのアイテムの平均である必要があり、2 番目の結果行は、そのアイテムの 2 番目の観測のすべてのアイテムの平均である必要があります。 .
別の言い方をすれば、各アイテムの日付順に並べられたすべての行を取得し、i=1,2,...,n からそれらにインデックスを付ける場合、行 1,2 の値のすべてのアイテムの平均が必要です。 ...、ん。つまり、すべての項目にわたる各項目の最初の観測値の平均、すべての項目にわたる 2 番目の観測値の平均などを求めます。
どうすればこれを達成できますか?既存の日付インデックスを使用できないので、データフレームに別のインデックスを追加する必要がありますか (前の段落で説明したようなもの)、または各項目の行を反復処理して実行平均を維持する唯一の方法です? これは機能しますが、パンダの力をまったく活用していません。
サンプルデータの追加:
item_id date X DUMMY_ROWS
20 2010-11-01 16759 0
2010-12-01 16961 1
2011-01-01 17126 2
2011-02-01 17255 3
2011-03-01 17400 4
2011-04-01 17551 5
21 2007-09-01 4 6
2007-10-01 5 7
2007-11-01 6 8
2007-12-01 10 9
22 2006-05-01 10 10
2006-07-01 13 11
23 2006-05-01 2 12
24 2008-01-01 2 13
2008-02-01 9 14
2008-03-01 18 15
2008-04-01 19 16
2008-05-01 23 17
2008-06-01 32 18
説明のために、データに存在しないダミーの行列を追加しました。私が説明している操作は、行 0、6、10、12、および 13 (各項目の最初の観察) の平均を効果的に与え、次に行 1、7、11、および 15 (項目の 2 番目の観察) の平均を与えます。オブザベーションが 1 つしかないため、アイテム 23 を除く)、など。