首页 > 解决方案 > 在 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 中的相同数据,我将如何实现它,以便我仅从列的第一行向下计数,并且不包括它正在计算的行下方的任何行?

标签: python-3.xpandas

解决方案


在熊猫中,我们groupbycumcount

df['C']=df.groupby('A').cumcount().gt(0).map({False:'New',True:'Update'})

推荐阅读