1
私は2つのデータフレームを持っています.1つはチームのリストと日付でソートされたスコアです。私はこれらのデータフレームに統計情報のマッチングの60列を持っている、と私は相手がDF1から、前の日付に持っていた平均でDF2の各列の値を置き換えコードを持ってしようとしています:別のデータフレームの条件付きグループを使用してpandasデータフレームを埋め込む
df1: df2:
date team scr name team opp date scr
0 2016-04-03 KCR 5.70 0 Erasmo Ramirez TBR TOR 2016-04-06 7.90
1 2016-04-03 NYM 4.70 1 Erasmo Ramirez TBR BAL 2016-04-10 1.30
2 2016-04-03 PIT 6.30 2 Erasmo Ramirez TBR CLE 2016-04-13 9.30
3 2016-04-03 STL 3.40 etc...
4 2016-04-03 TBR 4.80
5 2016-04-03 TOR 6.20*
6 2016-04-04 ARI 7.40
7 2016-04-04 ATL 5.30
8 2016-04-04 BAL 7.00
9 2016-04-04 CHC 9.60
10 2016-04-04 TOR 7.50*
etc...
でそうこの例では、df2の 'scr'の下の最初のエントリは7.90から6.85に変更され、4-6(4-3と4-4)までの日付のTORの平均scrです。
以下の(と同様のオプション)と運がなかった:
jf = df1.groupby('team')
df2['scr'] = jf.apply(lambda x: x[(df1['date']<x['date'])&(df1['team']==x['opp'])]['scr'].sum())
ValueError: Series lengths must match to compare
任意のsolutio ns?また、1つのコードブロックですべての列を反復処理する方法もありますか、各列にコードを用意する必要がありますか?