У меня есть два кадра данных, и мне нужно объединить их на основе даты, но объединение должно выполняться для каждой группы (participant_id
) отдельно.
df1:
response_date summary epis_mark participant_id
0 2012-01-04 0.0 False 13
1 2012-01-11 0.0 False 13
2 2012-01-19 0.0 False 13
3 2012-01-29 0.0 False 13
4 2012-02-02 0.0 False 13
0 2012-01-02 8.0 True 14
1 2012-01-10 5.0 False 14
2 2012-01-18 2.0 False 14
3 2012-01-24 1.0 False 14
4 2012-01-31 2.0 False 14
0 2012-01-07 4.0 False 17
1 2012-01-11 NaN False 17
2 2012-01-18 4.0 False 17
3 2012-01-25 NaN False 17
4 2012-02-01 NaN False 17
df2:
response_date summary epis_mark participant_id
0 2012-01-04 17.0 True 13
1 2012-01-11 18.0 True 13
2 2012-01-19 16.0 True 13
3 2012-01-29 15.0 True 13
4 2012-02-02 15.0 True 13
0 2012-01-02 12.0 True 14
1 2012-01-10 8.0 True 14
2 2012-01-18 21.0 True 14
3 2012-01-24 19.0 True 14
4 2012-01-31 20.0 True 14
0 2012-01-04 NaN False 17
1 2012-01-11 NaN False 17
2 2012-01-18 NaN False 17
3 2012-01-25 NaN False 17
4 2012-02-01 NaN False 17
Мне нужно получить один кадр данных (wide
), где слияние выполняется на response date
для каждого participant_id
независимо. Что-то типа:
>> pd.merge(df1[df1.participant_id == i], df2[df2.participant_id == i], on='response_date', how='outer')
Но без перебора i
и использования groupby.
on=['participant_id','response_date']
, чтобы гарантировать, что слияние выполняется для каждой группы в первую очередь? 13.07.2017