按组在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
我基本上希望将此问题的解决方案应用于 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