You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pandas DataFrame的特定数据后添加空白行

对应Excel场景的同类需求翻译:如何在一组数据后自动插入空白行

pandas实现指定位置插入空白行方案

pandas未提供专门用于该需求的内置函数,可通过分组拼接、索引重排两种方式分别适配不同场景,具体实现如下:

场景1:按指定列的同值分组后插入空白行

适用于和Excel同类需求一致的、给每个同值分组末尾加空白行的场景。

示例代码

import pandas as pd

# 构造测试数据
df = pd.DataFrame({
    '类别': ['A', 'A', 'B', 'B', 'B', 'C'],
    '数值': [1, 2, 3, 4, 5, 6]
})

# 指定分组依据列
group_col = '类别'

# 对每个分组末尾拼接空白行后合并
result = pd.concat(
    [group.append(pd.Series(dtype='object'), ignore_index=True) for _, group in df.groupby(group_col, sort=False)],
    ignore_index=True
)

# 若不需要最后一个分组后也保留空白行,添加以下代码删除末尾空行
result = result.iloc[:-1]

场景2:在指定列的特定值所在行后插入空白行

适用于仅需要给指定列匹配到特定值的行后加空白行的场景。

示例代码

import pandas as pd

# 构造测试数据
df = pd.DataFrame({
    '类别': ['A', 'A', 'B', 'B', 'B', 'C'],
    '数值': [1, 2, 3, 4, 5, 6]
})

# 指定目标列和要匹配的特定值
target_col = '类别'
target_value = 'B'

# 查找所有匹配行的索引
match_index = df[df[target_col] == target_value].index
# 计算空白行插入位置(每插一行后续插入位置依次后移一位)
insert_pos = match_index + 1 + pd.Series(range(len(match_index)), index=match_index)
# 重排索引插入空行,重置索引后得到结果
result = df.reindex(df.index.union(insert_pos)).reset_index(drop=True)

注意事项

  • 如需自定义空白行的填充内容,可将上述代码中的pd.Series(dtype='object')替换为指定内容的Series,例如pd.Series({'类别': '小计', '数值': None})
  • 处理十万行以上的大数据集时,优先使用上述向量化操作,避免逐行遍历插入导致性能大幅下降

内容的提问来源于stack exchange,提问作者Rekcoj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:42:02