问题描述
我有下面的数据框
A B C
1 1 a
1 2 b
1 3 c
2 4 d
2 5 e
我想像下面这样变换
A B C
1 6 a
2 9 d
B 表示组和 C 是前一个 df 中的第一个元素
我怎样才能得到这个结果?
1楼
看来您需要groupby
与aggregation
- sum
和first
:
df = df.groupby('A').agg({'B':'sum','C':'first'}).reset_index().reindex(columns=df.columns)
print (df)
A B C
0 1 6 a
1 2 9 d
感谢的另一个解决方案:
df = df.groupby('A', as_index=False).agg({'B':'sum','C':'first'}).reindex(columns=df.columns)
print (df)
A B C
0 1 6 a
1 2 9 d