Python 行与行之间的某些值求和
我有一个37万行x 340列的数据框,在这个数据框中,我在列之间混合了数值和非数值 我想根据Python 行与行之间的某些值求和,python,pandas,Python,Pandas,我有一个37万行x 340列的数据框,在这个数据框中,我在列之间混合了数值和非数值 我想根据user\u id合并行,某些数值求和,非数值保留 给定表格: user_id points gender age 11111 10000 male 18 2222 4200 female 33 11111 30000 male 18 2222
user\u 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个进行求和,但我对熊猫来说是新手,正在努力找到正确的方法,如果有任何提示,我将不胜感激 嘿,你可以使用
pandas aggregate sum
像
也可以在属性列表中传递多个列
但是这必须是列的子集,否则你可以使用聚合和来实现 像 也可以在属性列表中传递多个
列
但是,这必须是列的子集,否则,您需要根据
'user\u 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
只要在要“保留”值的列中只有一个唯一的值,第一个值就可以使用。否则,实现模式以保持最常见的值,或“唯一”以获得所有值的列表 您想按'user\u 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
只要在要“保留”值的列中只有一个唯一的值,第一个值就可以使用。否则,实现模式以保持最常见的值,或“唯一”以获得所有值的列表 我不认为它是数字和非数字的——年龄是数字,但你不想对年龄求和,对吗?@DSM是的,我只想合并某些数值。你可以做一个groupby
,然后为每列选择聚合函数。在这种情况下,类似于df.groupby('user_id').agg({'points':'sum','gender':'first'})
我不认为它是数字与非数字的——年龄是数字的,但你不想对年龄求和,对吗?@DSM是的,我只想合并某些数值您可以执行一个groupby
,然后为每列选择聚合函数。在本例中,类似于df.groupby('user_id').agg({'points':'sum','gender':'first'})