Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按ID分组行,为时间条目创建新列_Python_Pandas_Dataframe_Grouping - Fatal编程技术网

Python 按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"]) 如何实现这一点?使用计数器,创建多索引,并

我有一个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"])
如何实现这一点?

使用计数器,创建多索引,并通过以下方式重塑:

用于计数器,创建多索引,并通过以下方式重塑:

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