Как я могу создать новый идентификатор из двух идентификаторов? - PullRequest
0 голосов
/ 15 апреля 2020

Если у меня есть столбец 1 и столбец 2 из приведенного ниже примера, как я могу создать столбец 3?

Каждый раз, когда столбец 2 увеличивается на 1, столбец 3 должен увеличиваться на 1, но только внутри каждой группы. в столбце 1.

Другими словами, столбец 3 должен учитываться так же, как в столбце 2, но начинаться с начала каждый раз, когда столбец 1 увеличивается на 1.

Example

1 Ответ

2 голосов
/ 15 апреля 2020

Вы можете попробовать:

df["col3"] = df.groupby("col1")['col2'].apply(lambda x: x - x.iloc[0] + 1).reset_index(drop=True)

Пояснения:

  1. Используйте groupby для группировки по столбец ColA

  2. Для каждой группы вычтите первое значение из col2 в столбец col2 и добавьте 1

  3. Сбросьте индекс с помощью reset_index и drop=False, чтобы удалить двухуровневый индекс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...