Репликация функций ЕСЛИ и СЧЁТЕСЛИ в Excel в pandas - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь воспроизвести возможности операторов Excel countif и if в Pandas.

В 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 |
+---------+-------+------+--------+

Чтобы получить Значения типа, я бы использовал следующий код во всем столбце C (для строки 2):

=IF(COUNTIF($A2:A2, A2)>1, "Update", "New")

Для тех же данных в df, как бы я его реализовал, чтобы я считал только от первой строки столбца вниз и не включает строку под строкой, для которой он рассчитывается?

1 Ответ

1 голос
/ 04 августа 2020

В панде groupby с cumcount

df['C']=df.groupby('A').cumcount().gt(0).map({False:'New',True:'Update'})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...