Данные панд (ключ, значение), переместить дубликат экземпляра значения ключа в новый столбец - PullRequest
0 голосов
/ 04 июня 2018

У меня есть фрейм данных со столбцами 'NAME' и 'VALUE':

NAME       VALUE
apple        6
banana       3
cherry       7
apple        2
banana       5
cherry       3

Я хотел бы переместить VALUE дубликатов экземпляров в новый столбец, например:

NAME       VALUE VALUE2
apple        6     2
banana       3     5
cherry       7     3

Я делал это ранее в Python, перебирая строки CSV и поддерживая уникальный список прочитанных NAME, проверяя наличие NAME в списке ... если это так, то теперь уже второй раз явидел это, поэтому я добавляю его VALUE в новый столбец VALUE2.Кстати, строки не предполагаются в каком-то определенном порядке.

Есть ли быстрый способ сделать это в Пандах?

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Используя pivot

df.assign(key=df.groupby('NAME').cumcount()+1).pivot('NAME','key','VALUE').add_prefix('VALUE_')
Out[397]: 
key     VALUE_1  VALUE_2
NAME                    
apple         6        2
banana        3        5
cherry        7        3
0 голосов
/ 04 июня 2018

Нам понадобятся два set_index звонка плюс unstack:

df = df.set_index('NAME').set_index(
    df.groupby('NAME').cumcount(), append=True
).unstack()   

df.columns = df.columns.map('{0[0]}{0[1]}'.format)

df
        VALUE0  VALUE1
NAME                  
apple        6       2
banana       3       5
cherry       7       3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...