Pandas - строка в новый столбец по значению слияния по индексу - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь манипулировать некоторыми данными в пандах, чтобы они были совместимы с существующим программным обеспечением, и выполняемая операция была бы похожа на эту:

исходный фрейм данных:

    some_data   language    spelling
1   12          french      un
1   12          english     one
1   12          spanish     uno
2   52          french      deux
2   52          english     two
2   52          spanish     dos

целевой фрейм данных:

    some_data   lang_en   lang_fr   lang_sp
1   12          one       un        uno
2   52          two       deux      dos

Таким образом, он объединит индексы и переупорядочит некоторые строки, чтобы показать их в столбце, сохраняя при этом любые дополнительные данные столбца.

Все столбцы, которые не должны быть «разделены» (в данном примере some_data), содержат одинаковые данные по одному индексу, в реальных данных существует много таких столбцов.

Я бы определенно смог сделать это, зацикливаясь на кадре данных, но я пытаюсь выяснить, возможно ли сделать это полностью с пандами.

1 Ответ

0 голосов
/ 27 апреля 2018

Вы можете использовать:

df.set_index(['some_data','language'])['spelling']\
  .unstack()\
  .rename(columns=lambda x: 'lang_' + x[:2])\
  .rename_axis([None], axis=1)\
  .reset_index()

Выход:

   some_data lang_en lang_fr lang_sp
0         12     one      un     uno
1         52     two    deux     dos
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...