擅长:python、mysql、java
<pre><code>l=[]
l.append(df)
for x ,y in enumerate(df.columns[:-1]):
l.append(df.groupby(y).transform('mean').add_suffix('_{}1avg'.format(x+1)))
pd.concat(l,1)
Out[1328]:
lvl1 lvl2 wgt wgt_11avg wgt_21avg
0 l1A l2A 0.20 0.25 0.216667
1 l1A l2A 0.30 0.25 0.216667
2 l1B l2A 0.15 0.15 0.216667
3 l1C l26 0.05 0.05 0.050000
4 l1D l27 0.30 0.30 0.300000
</code></pre>