保留非连续重复值熊猫的数据透视表

时间:2020-01-31 19:16:02

标签: python pandas pivot-table

我有一个很大的设置,如下图所示

enter image description here

事件模式始终为-IN然后OUT

我想安排桌子看起来像这样:

enter image description here

立即在数据上使用数据透视表将导致每个Bayid一个[In] [Out]

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 个答案:

答案 0 :(得分:1)

尝试:

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