python - 基于多个条件在python中编写COUNTIFS
问题描述
我有一个问题,我已经能够在 excel 上解决,但也需要能够在 python 中解决这个问题。我有一张客户表,其中包含已终止会员资格和购买历史的会员。我希望能够计算每个客户在会员资格终止之前和之后的购买次数。
对于第一行,我使用 countifs 公式 =COUNTIFS(C:C,">"&B2,A:A,A2) 来计算客户自终止后完成的购买次数。
有没有办法在 python 中做到这一点?我试过使用 groupby 但它并没有真正输出相同的数据 这里是数据框
解决方案
Group by 是您需要的技术,可能是您做错了。尝试以下方法计算终止后的购买次数。
select id, count(*) from table where term < purchase group by id;
如果您想计算终止前完成的购买,请将term
and替换purchase
为列名。<
>
对应 SQL 语句的 pandas 查询为
df[df['Membership Termination date'] < df['Purchase date']].groupby('ID').size()
推荐阅读
- python - 使用 Docker compose 解释器强制调试模式关闭调试烧瓶
- html - html页面中的div顺序
- php - 删除字符串PHP中括号中特定值之外的所有内容
- c - 特殊符号和命令行参数
- javascript - 根据 React 中的输入字段过滤对象数组
- c# - 调用 post API 时出现内部服务器错误 500
- python - 在 QTimer Singleshot 之后终止 QThread
- docker - 在运行 ASP.NET Core 应用程序时将数据写入子文件夹(在包含所有应用程序 dll 的同一文件夹中)是否安全?
- excel - 循环复制单元格,其中包含公式粘贴在与值相同的单元格中
- python - Raspberry Pi 零 W - LIRC 不起作用 - 无法启动设备