在每个句点之后向pandas数据帧添加空行



我有一个pandas数据帧,它与以下内容非常相似:-

名称 状态
eric 单个
0
xavier 夫妇
sarah 夫妇
0
aaron 离婚
0

您可以使用groupby并将每个组的串联应用于伪行:

(df
.groupby(df['name'].shift().eq('.').cumsum(), group_keys=False)
.apply(lambda g: pd.concat([g, pd.DataFrame(index=[0], columns=g.columns)]).fillna(''))
)

输出:

name    status
0    eric    single
1       .         0
0                  
2  xavier    couple
3   sarah    couple
4       .         0
0                  
5   aaron  divorced
6       .         0
0                  

或者使用.和concat:提取行

df2 = df[df['name'].eq('.')].copy()
df2.loc[:] = ''
pd.concat([df, df2]).sort_index(kind='stable')

输出:

name    status
0    eric    single
1       .         0
1                  
2  xavier    couple
3   sarah    couple
4       .         0
4                  
5   aaron  divorced
6       .         0
6                  

最新更新