首页 > 解决方案 > 基于多个条件在python中编写COUNTIFS

问题描述

我有一个问题,我已经能够在 excel 上解决,但也需要能够在 python 中解决这个问题。我有一张客户表,其中包含已终止会员资格和购买历史的会员。我希望能够计算每个客户在会员资格终止之前和之后的购买次数。

对于第一行,我使用 countifs 公式 =COUNTIFS(C:C,">"&B2,A:A,A2) 来计算客户自终止后完成的购买次数。

有没有办法在 python 中做到这一点?我试过使用 groupby 但它并没有真正输出相同的数据 这里是数据框

标签: pythonexcelpandasfunctionnumpy

解决方案


Group by 是您需要的技术,可能是您做错了。尝试以下方法计算终止后的购买次数。

select id, count(*) from table where term < purchase group by id;

如果您想计算终止前完成的购买,请将termand替换purchase为列名。<>

对应 SQL 语句的 pandas 查询为

df[df['Membership Termination date'] < df['Purchase date']].groupby('ID').size()

推荐阅读