Python 如何对每个组合的数据帧求和?
我有一个数据框,看起来像:Python 如何对每个组合的数据帧求和?,python,pandas,Python,Pandas,我有一个数据框,看起来像: 用户信函时间 用户1 a 2 用户2 b 5 用户1 b 3 用户1 a 5 我试图得到这样一个数据帧,其中每个用户的时间总和为同一个字母,但找不到解决此问题的方法: 用户信函时间 用户1 a 7 用户2 b 5 用户1 b 3 使用df.groupby(['user','letter'])['time'].sum() 输出: user letter user1 a 7 b 3 user2 b 5
用户信函时间
用户1 a 2
用户2 b 5
用户1 b 3
用户1 a 5
我试图得到这样一个数据帧,其中每个用户的时间总和为同一个字母,但找不到解决此问题的方法:
用户信函时间
用户1 a 7
用户2 b 5
用户1 b 3
使用df.groupby(['user','letter'])['time'].sum()
输出:
user letter
user1 a 7
b 3
user2 b 5
user letter time
0 user1 a 7
1 user1 b 3
2 user2 b 5
time
user letter
user1 a 7
b 3
user2 b 5
user letter time
0 user1 a 7
1 user1 b 3
2 user2 b 5
如果要保留原始列,可以将作为_index=False传递给groupby
:
df.groupby(['user', 'letter'], as_index=False)['time'].sum()
print(df.groupby(['user', 'letter']).sum())
输出:
user letter
user1 a 7
b 3
user2 b 5
user letter time
0 user1 a 7
1 user1 b 3
2 user2 b 5
time
user letter
user1 a 7
b 3
user2 b 5
user letter time
0 user1 a 7
1 user1 b 3
2 user2 b 5
尝试此分组方式
:
df.groupby(['user', 'letter'], as_index=False)['time'].sum()
print(df.groupby(['user', 'letter']).sum())
输出:
user letter
user1 a 7
b 3
user2 b 5
user letter time
0 user1 a 7
1 user1 b 3
2 user2 b 5
time
user letter
user1 a 7
b 3
user2 b 5
user letter time
0 user1 a 7
1 user1 b 3
2 user2 b 5
好一点的:
print(df.groupby(['user', 'letter'], as_index=False).sum())
输出:
user letter
user1 a 7
b 3
user2 b 5
user letter time
0 user1 a 7
1 user1 b 3
2 user2 b 5
time
user letter
user1 a 7
b 3
user2 b 5
user letter time
0 user1 a 7
1 user1 b 3
2 user2 b 5
groupby和sum