添加之前的行以在 pandas 中生成另一行

问题描述 投票:0回答:1

我正在尝试解决我的数据框中的问题

df.head()
0    Key   value
1    10    500
2    11    500
3    12    600
4    12    800
5    13    1000
6    13    1200
. 
.
.
200++

输出是将值放在上面的数据框中,或者有另一个数据框,其中包含上面的所有值,附加信息如下所示。

Expected Output:

0    Key   value
1    10    500
2    11    500
3    12    600
4    12    800
5    12    1400 -----> Addition of 800+600 as keys are same
6    13    1000 
7    13    1200
8    13    2200 -----> Addition of 1000+12000 as keys are same 
.
.
200++

我刚刚开始使用 Pandas,任何帮助将不胜感激。

python pandas
1个回答
0
投票

一个可能的解决方案:

pd.concat(
    [df, 
     df.groupby('Key', as_index=False)['value']
     .apply(lambda x: None if len(x) == 1 else sum(x))
     .dropna()]).sort_values('Key')
© www.soinside.com 2019 - 2024. All rights reserved.