python – 使用计数复制数据框中的每一行

对于数据框中的每一行,我希望创建一个副本,并附加一列来标识每个副本.

E.g原始数据帧是

A | A 

B | B 

我希望使用附加列对每行进行复制以识别它.导致:

A | A | 1

A | A | 2

B | B | 1

B | B | 2

最佳答案 您可以在df.index上使用df.reindex,然后使用groupby.

df = df.reindex(df.index.repeat(2))
df['count'] = df.groupby(level=0).cumcount() + 1
df = df.reset_index(drop=True)

df
   a  b  count
0  A  A      1
1  A  A      2
2  B  B      1
3  B  B      2

同样,使用reindex并使用np.tile分配:

df = df.reindex(df.index.repeat(2))\
       .assign(count=np.tile(df.index, 2) + 1)\
       .reset_index(drop=True)

df

   a  b  count
0  A  A      1
1  A  A      2
2  B  B      1
3  B  B      2
点赞