私は2つのデータフレームdf1とdf2を持っています。パンダは他のものをそのまま維持しながら特定の行の平均を取る
df1には日単位のデータが含まれており、date、id、value1、value2の4つのカラムがあります。
df2には、idに特定のイベントが発生した日付が含まれています。日付とIDの2つの列があります。
DF2がDF2に行ごとDF1
に日付とID列のサブセットであり、IはDF1で同じ日付とIDを持つ行を検索したい、と日付-1からローになるだろうそのidの現在の日付+ 1、前の3行を平均して置き換えます。
たとえば、df2からdate = 3およびid = Aを指定した場合、df1に日付が(2,3,4)、id = Aの行を検索したい場合は、これらの3行を結果の1行に置き換えます。
DF1:
index date id value1 value2
0 1 A 0.1 0.2
1 2 A 0.2 0.3
2 3 A 0.3 0.4
3 4 A 0.4 0.5
4 5 A 0.5 0.6
5 1 B 0.1 0.2
6 2 B 0.2 0.3
7 3 B 0.3 0.4
8 4 B 0.4 0.5
9 5 B 0.5 0.6
DF2
index date id
0 3 A
1 3 B
所望の出力
index date id value1 value2
0 1 A 0.1 0.2
1 3 A 0.3 0.4
2 5 A 0.5 0.6
3 1 B 0.1 0.2
4 3 B 0.3 0.4
5 5 B 0.5 0.6
あなたは自分自身で解決策を説明しています。「df1で日付が(2,3,4)、id = Aの行を探したい」...詳細の残りの部分と組み合わせて、あなたの試みはどんな感じですか?あなたは問題を分解しましたが、今どのようにコードに変換していますか?フィルタリングと 'pandas.Series.isin'の使用を考えてみましょう... – blacksite