Как группировать в пандах, соблюдая определенный порядок? - PullRequest
0 голосов
/ 25 сентября 2018


В пакете Python для pandas я бы хотел сгруппировать, чтобы я держал определенный порядок.Код ниже, кажется, делает это, но есть ли более быстрый / простой способ?Или гарантируется, что группа по функциям панд сохраняет порядок записей в исходном фрейме данных?

import pandas as pd

sep = ' - '
df1 = pd.DataFrame([[1,"apple",1],[1,"banana",3],[1,"pear",2],[2,"lemon",3],[2,"orange",1],[2,"apple",2]])
df1.columns = ["id","product","seq"]
df1 = df1.sort_values(by=["id","seq"])
pd.DataFrame(df1.groupby('id',as_index=False)['product'].apply(lambda x: sep.join(x)))

1 Ответ

0 голосов
/ 25 сентября 2018

Использовать параметр sort=False, также не требуется DataFrame конструктор:

df2 = df1.groupby('id', sort=False)['product'].apply(sep.join).reset_index()
print (df2)
   id                 product
0   1   apple - pear - banana
1   2  orange - apple - lemon
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...