按组在DF中插入2个空白行

Insert 2 Blank Rows In DF by Group

我基本上希望将此问题的解决方案应用于 2 个空白行。

我已经搞砸了解决方案,但对代码的理解程度不足以正确更改它。

你可以这样做:

num_empty_rows = 2
df = (df.groupby('Col1',as_index=False).apply(lambda g: g.append(
             pd.DataFrame(data=[['']*len(df.columns)]*num_empty_rows,
                       columns=df.columns))).reset_index(drop=True).iloc[:-num_empty_rows])

如您所见,在每个组 df 后附加一个数据帧以容纳 num_empty_rows,然后在最后执行 reset_index。最后一个 iloc[:-num_empty_rows] 是可选的,即删除末尾的空行。

示例输入:

df = pd.DataFrame({'Col1': ['A', 'A', 'A', 'B', 'C'],
              'Col2':['s','s','b','b','l'],
              'Col3':['b','j','d','a','k'],
              'Col4':['d','k','q','d','p']
             })

输出:

    Col1    Col2    Col3    Col4
0      A       s       b       d
1      A       s       j       k
2      A       b       d       q
3               
4               
5      B       b       a       d
6               
7               
8      C       l       k       p