我有一个370000行x 340列的数据框,在这个DataFrame中,我在列之间混合了数值和非数值。我想基于合并行,将user_id某些数字值相加,并保留非数字值。给定表:user_id points gender age11111 10000 male 18 2222 4200 female 3311111 30000 male 18 2222 10 female 3311111 20000 male 18我希望得到这样的结果:user_id points gender age11111 60000 male 182222 4210 female 33在对行求和时,我需要求和大约。在340个价值中,有300个价值高昂,但我不知道要努力做到这一点的大熊猫,不胜感激。
2 回答

慕桂英4014372
TA贡献1871条经验 获得超13个赞
你想将你原来DataFrame的'user_id'。然后,您可以汇总分组的框架并指定要在每列上使用的功能的字典。
df.groupby('user_id').agg({'points': 'sum',
'gender': 'first',
'age': 'first'}).reset_index()
输出:
user_id points gender age
0 2222 4210 female 33
1 11111 60000 male 18
只要您要“保留”该值的列中只有一个唯一值,“第一”将起作用。否则,实施模式以保留最常见的值,或者“唯一”以获取所有值的列表。

潇潇雨雨
TA贡献1833条经验 获得超4个赞
嘿,你可以使用 pandas aggregate sum
喜欢
df.groupby(['user_id'])[["points"]].sum()
df.groupby(['user_id'])[["list_of_attribute"]].sum()
并且也可以传入多个columns,否则list_of_attributes 必须传入多个subset列KeyError。
添加回答
举报
0/150
提交
取消