Pandas从列a等于y的行中减去列a等于x的行

2024-04-19 11:07:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据帧看起来像

列:source、dest、buyOrSell、qty

我想把source和dest看作一个复合键。所以,我想我应该按source和dest进行分组,对于buyOrSell=='buy'的所有行,得到总数量。对于buyOrSell=='卖出'的所有行,减去该数量

我可以首先通过对前三个字段相同的地方求和来聚合一些重复:

df = df.groupby(['source','dest','buyOrSell']).sum()

但我不知道如何在不从熊猫身上获取数据的情况下获得买卖的差异

如果数据是:

    source  | dest  | buyOrSell | qty
    A         B       buy         3
    A         C       buy         1
    A         B       sell        1

我想要以下结果:

    source  | dest  | buyOrSell | qty
    A         B       buy         2
    A         C       buy         1

Tags: 数据sourcedf数量地方情况buy差异