Как преобразовать фрейм данных в определенный формат

#python #pandas #group-by #transform #reshape

#python #pandas #группировка по #преобразовать #изменить

Вопрос:

У меня есть следующий фрейм данных, который я хочу изменить:

     year    control   Counts_annee_control
0   2014.0  0         81.0
1   2016.0  1         147.0
2   2016.0  0         168.0
3   2015.0  1         90.0
4   2016.0  1         147.0
 

Я хочу control , чтобы столбец был новым индексом, поэтому у меня будет только два столбца. year Значениями должны быть новые столбцы фрейма данных, и, наконец Counts_annee_control , столбец заполнит фрейм данных.

Я пытался использовать groupby и transform , но я не думаю, что делаю это правильно.

Комментарии:

1. control не может быть индексом, потому что он содержит повторяющиеся значения

2. Вы пробовали df = df.set_index("control") ?

Ответ №1:

Вы, вероятно, ищете pivot_table .

Если df это ваш фрейм данных, то это

 modified_df = df.pivot_table(
    values='Counts_annee_control', index='control', columns='year'
)
 

приведет к

 year     2014.0  2015.0  2016.0
control                        
0          81.0     NaN   168.0
1           NaN    90.0   147.0