在行之间求和某些值

我有一个370000行x 340列的数据框,在这个DataFrame中,我在列之间混合了数值和非数值。


我想基于合并行,将user_id某些数字值相加,并保留非数字值。


给定表:


user_id          points    gender    age

11111              10000      male    18

 2222               4200    female    33

11111              30000      male    18

 2222                 10    female    33

11111              20000      male    18

我希望得到这样的结果:


user_id          points    gender     age

11111              60000      male     18

2222                4210      female   33

在对行求和时,我需要求和大约。在340个价值中,有300个价值高昂,但我不知道要努力做到这一点的大熊猫,不胜感激。


临摹微笑
浏览 200回答 2
2回答

慕桂英4014372

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

潇潇雨雨

嘿,你可以使用 pandas aggregate sum喜欢df.groupby(['user_id'])[["points"]].sum()df.groupby(['user_id'])[["list_of_attribute"]].sum()并且也可以传入多个columns,否则list_of_attributes 必须传入多个subset列KeyError。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python