python-3.x - 在 pandas 中复制 Excel 的 IF 和 COUNTIF 函数
问题描述
我正在尝试在 Pandas 中复制 Excel countif 和 if 语句的能力。
在 Excel 中,我有下表:
+---------+-------+------+--------+
| Row/Col | A | B | C |
+---------+-------+------+--------+
| 1 | Name | Date | Type |
| 2 | John | 21/4 | New |
| 3 | John | 22/4 | Update |
| 4 | Jacob | 23/6 | New |
| 5 | Mary | 24/7 | New |
| 6 | Jacob | 26/8 | Update |
+---------+-------+------+--------+
为了获取 Type 值,我将在所有 C 列(对于第 2 行)中使用以下代码:
=IF(COUNTIF($A2:A2, A2)>1, "Update", "New")
对于 df 中的相同数据,我将如何实现它,以便我仅从列的第一行向下计数,并且不包括它正在计算的行下方的任何行?
解决方案
在熊猫中,我们groupby
有cumcount
df['C']=df.groupby('A').cumcount().gt(0).map({False:'New',True:'Update'})
推荐阅读
- webpack - 生产中的 Webpack 输出类型“var”
- python - 如何使用烧瓶日志记录用户在调用接口时(之前和之后)所做的更改
- azure - 消费层上 Azure Function App 的白名单 IP
- sql - Redshift:如何删除不可打印的字符
- julia - 在 Julia 中进行混合计算时是否必须手动转换变量类型?
- c++ - 如何让我的 c++ 代码在 aws hpc ec2 中运行?
- sql - 使用 PostgreSQL 动态查询 JSON
- ios - Flutter for iOS 中的定期后台获取
- excel - 使用 vba 设置单元格公式的另一个问题
- bash - 通过命令行仅将扩展名附加到目录中的某些文件