У меня есть 2 кадра данных. Мне нужно обновить столбец в первом со средним значением во втором, сгруппированных по индексу.
вот пример
df1 (col1 - индекс)
col2 col3
col1
a 0 X
b 0 0
c 0 0
d 0 0
df2 (col1 - индекс)
col2 col3
col1
a 1 0
a 3 0
d 2 0
d 4 0
Мне нужно среднее значение в col2 df2 (a = 2, d = 3) и обновить df1 только для строк с col3 = X
Я пробовал это
df1.loc[df1.col3=='X'].update(df2.groupby(df2.index),'col2'].mean().to_frame())
Это работает, только если я не использую loc.
результат, который я пытаюсь получить
df1 (col1 - индекс)
col2 col3
col1
a 2 X
b 0 0
c 0 0
d 0 0