Группировка pandas строк по идентификатору, создание новых столбцов для записей времени - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть pandas фрейм данных, который имеет повторяющиеся идентификаторы, поскольку каждая строка представляет собой меру времени.

 pd.DataFrame([[1, 2], [1, 3], [2, 6], [2,7]], columns=['id', 'colA'])

Я хочу преобразовать его таким образом, чтобы каждая строка представляла один идентификатор, и Временной ряд данных данных фиксируется в новых столбцах. Т.е. я хочу, чтобы вывод выглядел так:

pd.DataFrame([[1,2,3],[2,6,7]],columns=["id","colA_0","colA_1"])

Как мне этого добиться?

1 Ответ

2 голосов
/ 25 февраля 2020

Используйте GroupBy.cumcount для счетчика, создайте MultiIndex с помощью DataFrame.set_index и измените его на Series.unstack:

df1 = (df.set_index(['id', df.groupby('id').cumcount()])['colA']
         .unstack()
         .add_prefix('colA_')
         .reset_index())
print (df1)
   id  colA_0  colA_1
0   1       2       3
1   2       6       7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...