python pandas: сводить строки к столбцам на основе повторяющихся индексных столбцов - PullRequest
1 голос
/ 10 июля 2019

У меня есть pandas dataframe с повторяющимися значениями столбцов, как показано ниже

<b>id,  key, qual, metric, value</b>

abc  xyz  TRK    a      5528
abc  xyz  TRK    b      1234
abc  xyz  TRK    c      Error
abc  xyz  TRK    d      OK

Мне нужен вывод, как показано ниже

<b>id   key  qual  a     b     c     d</b>

abc  xyz  TRK   5528  1234  Error  OK

Я пытался использовать pivot, но результат отбрасывалсяключевые и квалифицированные столбцы.

measures = measures.pivot(index='id',columns='metric',values='value')

1 Ответ

0 голосов
/ 10 июля 2019

Вы можете использовать изменение формы данных… Однако меня немного смущают ваши значения b, c и d в ожидаемом результате.

Попробуйте это, используя set_index и unstack:

df.set_index(df.columns[:-1].tolist())['value'].unstack().reset_index().rename_axis(None, axis=1)

Вывод:

    id  key qual     a     b     c     d
0  abc  xyz  TRK  5528  1234  3453  4544

Другой способ заключается в использовании pivot_table (будет не работа со строкой в ​​столбце значений):

df.pivot_table(columns='metric',index=['id','key','qual'])['value']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...