我有一张表格如下:
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
请帮我解决这个问题。感谢
答案 0 :(得分:0)
使用:
numpy.repeat
和loc
重复行cumcount
索引reset_index
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