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
或:
我很高兴能帮上忙。天气真好!我很高兴能帮上忙。天气真好!