Python 如何将一列添加到df中,以对a列中条目的所有匹配值求和?
我有一个数据框架,包含一系列的日期、每天活动的用户以及该用户当天的事件。我想在另一个列中添加一个列,该列提供每个用户在总时间跨度内的事件总数 我可以用这段代码使它工作,但我确信有一种更优雅的方法来实现它。请让我知道什么可以更好Python 如何将一列添加到df中,以对a列中条目的所有匹配值求和?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个数据框架,包含一系列的日期、每天活动的用户以及该用户当天的事件。我想在另一个列中添加一个列,该列提供每个用户在总时间跨度内的事件总数 我可以用这段代码使它工作,但我确信有一种更优雅的方法来实现它。请让我知道什么可以更好 df1 = pd.DataFrame({'users': ['Sara', 'James', 'Sara', 'James'], 'events': [3, 2, 5, 1] }) df2 =
df1 = pd.DataFrame({'users': ['Sara', 'James', 'Sara', 'James'],
'events': [3, 2, 5, 1]
})
df2 = df1.groupby('users').sum()
df2.rename(columns= {'events' : 'total'}, inplace=True)
df3 = pd.merge(df1, df2, how='left', on='users')
这给了我想要的输出,每个Sara行8个,每个James行3个。确实有,你知道
转换方法吗?它以与当前数据帧相同的格式返回groupby
df1['total'] = df1.groupby('users').transform('sum')
print(df1)
users events total
0 Sara 3 8
1 James 2 3
2 Sara 5 8
3 James 1 3
作为一种考验
df1 == df3
users events total
0 True True True
1 True True True
2 True True True
3 True True True
详情如下:
确实有,你知道转换方法吗?它以与当前数据帧相同的格式返回groupby
df1['total'] = df1.groupby('users').transform('sum')
print(df1)
users events total
0 Sara 3 8
1 James 2 3
2 Sara 5 8
3 James 1 3
作为一种考验
df1 == df3
users events total
0 True True True
1 True True True
2 True True True
3 True True True
详情如下: