Как создать новые функции, используя порядок отсортированных функций в пандах? - PullRequest
0 голосов
/ 27 марта 2019

У меня есть набор данных, который я сгруппировал по 2 различным параметрам и получил что-то вроде этого:

idx name time
a   andy  2
a   andy  5
a   andy  4
b   andy  3
b   andy  7
b   andy  9

и т. Д.

Мне нужно создать объекты, чтобы набор данных былвыглядеть следующим образом:

 idx name time1 time2 time3 
 a   andy   2     4     5

Время должно быть отсортировано, и их порядок должен использоваться для создания функций.

Я изо всех сил пытаюсь придумать, как это реализовать.

1 Ответ

0 голосов
/ 27 марта 2019

Вам нужно отсортировать, а затем сгенерировать индекс столбца с помощью groupby + cumcount.Теперь это проблема pivot_table, и в итоге мы можем очистить MultiIndex.

df = df.sort_values(['idx', 'time'])
df['idx2'] = df.groupby('idx').cumcount()+1

df1 = df.pivot_table(index=['idx', 'name'], columns='idx2').rename_axis([None, None], axis=1)

# Move everything to simple columns
df1.columns = [''.join(map(str, x)) for x in df1.columns]
df1 = df1.reset_index()

Вывод: df1:

  idx  name  time1  time2  time3
0   a  andy      2      4      5
1   b  andy      3      7      9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...