我有一个很大的设置,如下图所示
事件模式始终为-IN然后OUT
我想安排桌子看起来像这样:
立即在数据上使用数据透视表将导致每个Bayid一个[In] [Out]
H= pd.pivot_table(data, index=['place', 'zoneid', 'bayid'], columns=['Event'],values='timestamp', aggfunc=lambda x: list(x))
因此,我想过要创建一个新列,以便在使用数据透视表之前为每个[In / Out]对获取相同的值
我的尝试如下,但是它没有启动每个新组中的索引计数,这导致数据透视表中的值错误
D['index'] = (D.index)
D['index']=D['index'].shift(-1).fillna(len(D)).apply( lambda x: math.ceil((x)/2))
我该如何安排桌子?
答案 0 :(得分:1)
尝试:
data["_counter"]=data.groupby(['place', 'zoneid', 'bayid', 'Event']).cumcount()
H=data.pivot(index=['place', 'zoneid', 'bayid', '_counter'], columns=['Event'],values='timestamp')