Skip to main content
 首页 » 编程设计

Python Pandas 连接行并汇总值

2025年05月04日24wayfarer

我有一个看起来像这样的数据框:

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    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 

我用 .merge 尝试了不同的东西,但没有成功。 也许有人知道一个简单的技巧......

干杯, 阿斯特拉斯

请您参考如下方法:

你需要groupby和聚合sum , 对于 name 列添加 reset_index或参数as_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   

或者:

df1 = df.groupby('name', as_index=False).sum() 
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