Использование уникальных значений столбца в качестве столбца более высокого уровня pandas - PullRequest
0 голосов
/ 10 июля 2020

Представьте, что у меня есть кадр данных pandas следующего вида:

Side   Year   Value 1   Value 2
A      2020    56          5%
B      2019    24          3%
B      2018    42          4%
B      2020    414         31%
A      2019    421         51%

Я хотел бы иметь что-то вроде этого:

            A                 B
Year  Value1 Value2    Value1   Value2  
2018     -     -         42      4%
2019    421   51%        24      3%
2020     56    5%        414     31%
        

Я попытался создать сторону в качестве индекса и затем транспонирование, но тогда у меня нет уникальных значений, но я получаю повторяющиеся значения.

1 Ответ

2 голосов
/ 10 июля 2020

Вы можете использовать комбинацию установить индекс вместе с unstack и, наконец, индекс сортировки , чтобы изменить форму ваших данных:

res = df.set_index(["Year", "Side"]).unstack().swaplevel(1, 0, axis=1).sort_index(axis=1)

#remove axis details
res.columns.names = (None, None)

#reset to lowest level (-1)

res.reset_index(col_level=-1)

                      A                   B
      Year    Value 1   Value 2   Value 1   Value 2
  0   2018    NaN        NaN       42.0        4%
  1   2019    421.0      51%       24.0        3%
  2   2020    56.0       5%        414.0       31%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...