我有这样一个数据帧
lvl1=['l1A','l1A','l1B','l1C','l1D']
lvl2=['l2A','l2A','l2A','l26','l27']
wgt=[.2,.3,.15,.05,.3]
lvls=[lvl1,lvl2]
df=pd.DataFrame(wgt, lvls).reset_index()
df.columns = ['lvl' + str(i) for i in range(1,3)] + ['wgt']
df
lvl1 lvl2 wgt
0 l1A l2A 0.20
1 l1A l2A 0.30
2 l1B l2A 0.15
3 l1C l26 0.05
4 l1D l27 0.30
我想得到每个级别的平均权重,并将它们作为一个单独的列添加到这个数据框中。在
^{pr2}$级别可以超过两个,所以我想用变量来代替。当数据集变得越来越大时,最好和有效的方法是什么。我不需要这些数据在同一个数据框中。在这种情况下,它可以是一个单独的nxm矩阵(2x5)中的平均权重矩阵。在
这是一个非熊猫的解决方案。从生成的字典中,可以有效地映射到列。在
对于这个微型数据集,我看到以下3个响应的性能:
^{pr2}$使用
list comprehension
:相关问题 更多 >
编程相关推荐