pandas 关于列的一个描述中的浓缩求和问题

ddhy6vgd  于 2023-02-28  发布在  其他
关注(0)|答案(2)|浏览(107)

这里是我的问题y有两个 Dataframe 。我只想在列"Cantidad"中求和,因为正如你所看到的,其他信息是相同的,我只想对列"Cantidad"求和,因为该列是可变的。(以下示例):
首次DF

fac

    Tarifa  Precio  Cantidad    Importe $   Porcentaje
3   Vecina      155     87       13485         49.2%
2   Misma Zona  130     72        9360         40.7%
0   Alejada     229     17        3893          9.6%
1   Grande      250      1         250          0.6%

第二个DF

fac2 
Tarifa       Precio        Cantidad     Importe $   Porcentaje
2   Vecina      155             61         9455         55.5%
1   Misma Zona  130             40         5200         36.4%  
0   Alejada     229             9          2061          8.2%

我试过了,但没有成功:

df_concat = pd.concat([fac,fac2],axis=0)
df_grouped = df_concat.groupby(["Tarifa", "Precio"]).agg({"Cantidad": "sum"}).reset_index()

# Ordenamos el dataframe por las mismas columnas que utilizamos en el groupby
df_result = df_grouped.sort_values(["Tarifa", "Precio"])

# Mostramos el resultado
print(df_result)

结果是:

Tarifa   Precio     Cantidad
2   Vecina      155         87  
1   Misma Zona  130         72
0   Alejada     229         17

如你所见,在"Cantidad"一栏中没有和。
希望你能帮助我!
最好的问候!

bakd9h0s

bakd9h0s1#

r = (pd.concat([df1, df2], ignore_index=True)
       .groupby('Tarifa')
       .agg({'Precio': 'first', 'Cantidad': sum})
)
                                                                   
print(r)
Precio  Cantidad
Tarifa                      
Alejada        229        26
Grande         250         1
Misma Zona     130       112
Vecina         155       148
ovfsdjhp

ovfsdjhp2#

由于只有一列是变量,因此可以尝试执行以下操作

df = pd.concat([fac, fac2], axis=0)[['Tarifa', 'Precio', 'Cantidad']]
df_result = df.groupby(['Tarifa', 'Precio']).sum().reset_index()

相关问题