Pandas - изменение формы с разделенными значениями (обратное плавление) - PullRequest
1 голос
/ 22 апреля 2020

Я новичок в Pandas (начался на этой неделе), и я на последнем этапе моего сценария, и я застрял. Мне нужно свернуть данные, которые я слил, в отдельные значения при сохранении ключа.

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

Index,ID#,Start Page, End Page
0, 1, Page 1, Page5
1, 2, Page 10, Page 20
2, 2, Page 25, Page 30

Индекс - это индекс данных по умолчанию. ID # - мой ключ.

Я пытаюсь получить такой результат:

ID#,Start Page, End Page
1, Page 1, Page 5
2, Page 10; Page 25, Page 20; Page 30

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

Я использую ноутбуки Jupyter (python 3) с библиотекой pandas.

Спасибо за помощь.

1 Ответ

1 голос
/ 22 апреля 2020

Я думаю, вы хотите groupby.agg:

# chain with to_csv() if needed
df.groupby('ID#', as_index=False)[['Start Page', 'End Page']].agg('; '.join)

Или, поскольку вы упомянули обратный расплав , хотя и немного медленнее, pivot_table:

(df.pivot_table(index=['ID#'], 
               values=['Start Page', 'End Page'], 
               aggfunc='; '.join)
   .reset_index()
)

Вывод:

   ID#        Start Page          End Page
0    1            Page 1             Page5
1    2  Page 10; Page 25  Page 20; Page 30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...