Pandas - 如果满足条件,则在下方添加 X 行

Pandas - Adding X number of rows below if condition is met

我有以下数据集:

     week_numbs
0.       2
1        4
2.       1
3.       20
4.       3
5.       14

我想检查 week_numbs 是否 > 0 以及是否在下方添加 'week_numbs' # of empty rows。 因此,对于索引 0,下面有 2 个空行,对于索引 1,下面有 4 个空行,依此类推。

期望的输出:

  week_numbs
0.       2
1.
2.
3.       4
4.
5.
6.
7.
8.       1
9.

谢谢。

IIUC,你可以这样做:

# repeat the rows
df2 = df.loc[df.index.repeat(df['week_numbs']+1)]
# mask the successive duplicates
df2 = df2.mask(df2['week_numbs'].eq(df2['week_numbs'].shift()), '')

输出:

  week_numbs
0          2
0           
0           
1          4
1           
1           
1           
1           
2          1
2           
3         20
3           
3           
3           
...