我有一个数据集,我试图按一些常见值进行分组,然后总结一些其他值。棘手的部分是我想添加某种保持最大数字的权重,我将在下面尝试详细说明:
我创建了一个虚拟数据框,它与我的数据线一致,仅用于示例目的:
df = pd.DataFrame({'Family': ['Contactors', 'Contactors', 'Contactors'],
'Cell': ['EP&C', 'EXR', 'C&S'],
'Visits': ['25620', '626', '40']})
这会产生一个像这样的表:
所以,在这个例子中,我希望所有的“接触者”都按 EP&C 进行分组(因为这具有最高的访问量),但我希望将所有访问量加起来,并删除其他“单元格”值,所以我会留下这样的东西:
有人可以建议吗?
谢谢。
IIUC,您可以使用:
(df
# convert to numeric
.assign(Visits=pd.to_numeric(df['Visits']))
# ensure the top row per group is the highest visits
.sort_values(by=['Family', 'Visits'], ascending=False)
# for groups per Family
.groupby('Family', sort=False, as_index=False)
# aggregate per group: Cell (first row, i.e top) and Visits (sum of rows)
.agg({'Cell': 'first', 'Visits': sum})
)
输出:
Family Cell Visits
0 Contactors EP&C 26286
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句