Я создал DataFrame
A1 A2 A3 A4
0 cccc xx 6 5
1 aaaa yy 8 0
2 aaaa xx 15 0
3 bbbb xx 21 4
4 bbbb xx 26 0
5 cccc yy 33 2
6 aaaa xx 44 1
7 cccc xx 48 2
8 aaaa yy 58 0
9 cccc yy 59 5
10 bbbb yy 77 0
11 bbbb yy 99 0
и теперь, используя crosstab()
с приведенной ниже командой, я создал новый DataFrame.
df5 = pd.crosstab(df4['A1'], df4['A2'], margins=False,values=df4['A3'] ,
dropna=False, aggfunc='mean').reset_index().fillna(0)
это работает правильно.это дает мне вывод следующим образом
A2 A1 xx yy
0 aaaa 29.5 33.0
1 bbbb 23.5 88.0
2 cccc 27.0 46.0
Теперь я хочу сохранить средние значения в DataFrame df4
Как я могу это сделать, поскольку я хочу изменить A3
, которыйсодержать 0 в df5
на основе crosstab()
?и я хочу вывод следующим образом
A1 A2 A3 A4
0 aaaa xx 15 29.5
1 aaaa xx 44 1.0
2 aaaa yy 8 33.0
3 aaaa yy 58 33.0
4 bbbb xx 21 4.0
5 bbbb xx 26 23.5
6 bbbb yy 77 88.0
7 bbbb yy 99 88.0
8 cccc xx 6 5.0
9 cccc xx 48 2.0