如何在Pandas dataframe每类第2列值的首行前插入对应固定值行
实现方法
核心思路是对第2列分组后,给每个分组拼接对应表头行再合并,实现逻辑简单,代码量少:
import pandas as pd # 此处替换为你自己的原始DataFrame变量名,若已经加载过df可以跳过读取步骤 raw_df = pd.read_csv("你的数据源路径") def insert_group_header(group_df): # 构造分组头部行:第0列为分组键(第2列的值),第3列为对应分组的file值,其余列为空 header = pd.DataFrame( [[group_df.name, "", "", group_df[3].iloc[0]]], columns=raw_df.columns ) # 拼接头部行和当前分组的原始数据 return pd.concat([header, group_df], ignore_index=True) # 按第2列分组后应用处理函数,最后重置全局索引 result_df = raw_df.groupby(2, group_keys=False).apply(insert_group_header).reset_index(drop=True)
补充说明
- 如果你希望空值显示为
NaN而非空字符串,把代码里的""替换为pd.NA即可 - 逻辑默认同一个分组的第3列值相同,所以直接取分组内第3列第一个值即可满足需求
- 处理后的
result_df就是你需要的最终结构,后续直接按第3列分组拆分保存文件即可
内容的提问来源于stack exchange,提问作者Radix
相关产品推荐
相关产品推荐

