Python将行连接起来并对值求和

Python将行连接起来并对值求和,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有这样一个数据框: name event_code_0 event_code_1100 event_code_1110 event_code_1120 event_code_1120 event_code_1199 0 A 1 0 0 0 0 0 1 A 0 0 1 0 0 0 2 A 0 0 0 1 0 0 3 A 0 0 1 0 0 0 4 A 0 1

我有这样一个数据框:

name    event_code_0    event_code_1100 event_code_1110 event_code_1120 event_code_1120 event_code_1199
0   A   1   0   0   0   0   0
1   A   0   0   1   0   0   0
2   A   0   0   0   1   0   0
3   A   0   0   1   0   0   0
4   A   0   1   0   0   0   0
5   A   0   0   0   0   1   0
6   A   0   0   0   1   0   0
7   A   0   1   0   0   0   0
8   A   1   0   0   0   0   0
9   B   0   0   0   0   0   1
10  B   0   0   0   0   1   0
11  B   0   0   1   0   0   0
12  B   0   1   0   0   0   0
13  B   1   0   0   0   0   0
14  B   0   0   1   0   0   0
15  B   0   0   0   1   0   0
16  B   0   1   0   0   0   0
17  B   0   0   0   0   0   1
我想合并列“name”上的不同行并计算事件代码

例如,数据帧应该如下所示:

name    event_code_0    event_code_1100 event_code_1110 event_code_1120 event_code_1120 event_code_1199
0   A   2   2   2   2   1   0
1   B   1   2   2   1   1   2
我尝试过不同的东西。合并但没有成功。 也许有人知道一个简单的把戏

干杯,
Astrus

您需要按名称列分组,并计算总和:

df.groupby('name').sum()
Out: 
      event_code_0  event_code_1100  event_code_1110  event_code_1120  \
name                                                                    
A                2                2                2                2   
B                1                2                2                1   

      event_code_1120.1  event_code_1199  
name                                      
A                     1                0  
B                     1                2  
默认情况下,这将名称列设置为索引。您可以通过以下方式进行更改:

df.groupby('name', as_index=False).sum()
Out: 
  name  event_code_0  event_code_1100  event_code_1110  event_code_1120  \
0    A             2                2                2                2   
1    B             1                2                2                1   

   event_code_1120.1  event_code_1199  
0                  1                0  
1                  1                2  

或者
df.groupby('name').sum().reset_index()

您需要按名称列进行分组并获取总和:

df.groupby('name').sum()
Out: 
      event_code_0  event_code_1100  event_code_1110  event_code_1120  \
name                                                                    
A                2                2                2                2   
B                1                2                2                1   

      event_code_1120.1  event_code_1199  
name                                      
A                     1                0  
B                     1                2  
默认情况下,这将名称列设置为索引。您可以通过以下方式进行更改:

df.groupby('name', as_index=False).sum()
Out: 
  name  event_code_0  event_code_1100  event_code_1110  event_code_1120  \
0    A             2                2                2                2   
1    B             1                2                2                1   

   event_code_1120.1  event_code_1199  
0                  1                0  
1                  1                2  
df.groupby('name').sum().reset_index()

您需要并聚合
name
列添加或参数
为_index=False

df1 = df.groupby('name').sum().reset_index()
print (df1)
  name  event_code_0  event_code_1100  event_code_1110  event_code_1120  \
0    A             2                2                2                2   
1    B             1                2                2                1   

   event_code_1120  event_code_1199  
0                1                0  
1                1                2  
或:

您需要将
name
添加到列,或将参数
聚合为\u index=False

df1 = df.groupby('name').sum().reset_index()
print (df1)
  name  event_code_0  event_code_1100  event_code_1110  event_code_1120  \
0    A             2                2                2                2   
1    B             1                2                2                1   

   event_code_1120  event_code_1199  
0                1                0  
1                1                2  
或:


我很高兴能帮上忙。天气真好!我很高兴能帮上忙。天气真好!