Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何对每个组合的数据帧求和?_Python_Pandas - Fatal编程技术网

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