Python 按ID分组行,为时间条目创建新列
我有一个pandas数据帧,它有重复的ID,因为每一行代表时间的度量Python 按ID分组行,为时间条目创建新列,python,pandas,dataframe,grouping,Python,Pandas,Dataframe,Grouping,我有一个pandas数据帧,它有重复的ID,因为每一行代表时间的度量 pd.DataFrame([[1, 2], [1, 3], [2, 6], [2,7]], columns=['id', 'colA']) 我希望以一种方式对其进行转换,即每行表示一个ID,并且数据的时间序列方面在新列中捕获。即:我希望输出如下所示: pd.DataFrame([[1,2,3],[2,6,7]],columns=["id","colA_0","colA_1"]) 如何实现这一点?使用计数器,创建多索引,并
pd.DataFrame([[1, 2], [1, 3], [2, 6], [2,7]], columns=['id', 'colA'])
我希望以一种方式对其进行转换,即每行表示一个ID,并且数据的时间序列方面在新列中捕获。即:我希望输出如下所示:
pd.DataFrame([[1,2,3],[2,6,7]],columns=["id","colA_0","colA_1"])
如何实现这一点?使用计数器,创建多索引,并通过以下方式重塑:
用于计数器,创建多索引,并通过以下方式重塑:
df1 = (df.set_index(['id', df.groupby('id').cumcount()])['colA']
.unstack()
.add_prefix('colA_')
.reset_index())
print (df1)
id colA_0 colA_1
0 1 2 3
1 2 6 7