如何在pandas中生成多行?

时间:2018-02-24 10:26:25

标签: python pandas

我有一张表格如下:

Entity  counts
A       4
B       2
C       2
D       5

我想通过添加一个名为order的列来从该表生成更多行。此列值是counts列的倒计时。我要创建的表格如下:

Entity  counts  order
A       4       3
A       4       2
A       4       1
A       4       0
B       2       1
B       2       0
C       2       1
C       2       0
D       5       4
D       5       3
D       5       2
D       5       1
D       5       0

请帮我解决这个问题。感谢

1 个答案:

答案 0 :(得分:0)

使用:

df = df.loc[np.repeat(df.index, df['counts'])]
df['order'] = df.groupby(level=0).cumcount(ascending=False)
df = df.reset_index(drop=True)
print (df)
   Entity  counts  order
0       A       4      3
1       A       4      2
2       A       4      1
3       A       4      0
4       B       2      1
5       B       2      0
6       C       2      1
7       C       2      0
8       D       5      4
9       D       5      3
10      D       5      2
11      D       5      1
12      D       5      0