Сводная таблица с сохранением непоследовательных повторных значений pandas - PullRequest
0 голосов
/ 31 января 2020

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

enter image description here

Где шаблон события всегда -IN Тогда OUT

И я хочу, чтобы таблица выглядела следующим образом:

enter image description here

Использование сводной таблицы сразу для данных приведет к одному [In] [Out] per bayid

H= pd.pivot_table(data, index=['place',  'zoneid', 'bayid'], columns=['Event'],values='timestamp', aggfunc=lambda x: list(x))

Итак, я подумал о создании нового столбца, который получает одинаковое значение для каждой пары [In / Out] перед использованием сводной таблицы enter image description here

Моя попытка заключается в следующем, но она не запускает счетчик индексов в каждой новой группе, что привело к ошибочным значениям в сводной таблице

D['index'] = (D.index)
D['index']=D['index'].shift(-1).fillna(len(D)).apply( lambda x: math.ceil((x)/2))

Как я могу расположить таблицу?

1 Ответ

1 голос
/ 31 января 2020

Попробуйте:

data["_counter"]=data.groupby(['place',  'zoneid', 'bayid', 'Event']).cumcount()
H=data.pivot(index=['place',  'zoneid', 'bayid', '_counter'], columns=['Event'],values='timestamp')
...