如何用Python重命名CSV表头并为指定空白列填充固定数值
解决方案:重命名CSV列并填充固定值
先修正你脚本里的缩进错误——if f.endswith(ext): 必须放在for循环内部,否则只会处理目录里最后一个文件。然后添加重命名列和填充值的逻辑,完整可运行代码如下:
import os import pandas as pd directory = 'path/' output_dir = 'path/Output' ext = '.csv' # 确保输出目录存在,避免因目录未创建报错 os.makedirs(output_dir, exist_ok=True) for filename in os.listdir(directory): f = os.path.join(directory, filename) # 缩进修正:将文件后缀判断放入循环内,遍历所有符合条件的CSV if f.endswith(ext): # 简化文件名处理逻辑,避免手动拆分出错 file_base_name = os.path.splitext(filename)[0] output_path = os.path.join(output_dir, f"{file_base_name} - Output.csv") mydata = pd.read_csv(f) # 筛选需要保留的列 new_df = mydata[["Part ID","Serial ID","Bin","Cluster","Site","Room","Model MPN","Vendor","Type","State","Tags"]] # 重命名Tags列为Quantity,并给整列填充值1 new_df.rename(columns={"Tags": "Quantity"}, inplace=True) new_df["Quantity"] = 1 new_df.to_csv(output_path, index=False)
关键修改说明:
- 缩进修复:把文件后缀判断移到
for循环内部,确保遍历目录下所有CSV文件 - 目录安全处理:添加
os.makedirs(output_dir, exist_ok=True),自动创建输出目录(如果不存在) - 文件名处理优化:用
os.path.splitext直接拆分文件名和后缀,比手动split更稳定 - 列操作逻辑:
rename(columns={"Tags": "Quantity"}, inplace=True)直接修改目标列名new_df["Quantity"] = 1给整列统一填充值1,覆盖原空白单元格
如果运行仍报错,检查:
directory和output_dir的路径是否正确(Windows系统注意用双反斜杠\\或原始字符串r'path')- CSV文件内的列名是否和代码中指定的完全一致(注意大小写、空格)
内容的提问来源于stack exchange,提问作者QuickSilver42
相关产品推荐
相关产品推荐

