
本文介绍如何使用 Python 的 Pandas 库,向现有 CSV 文件中新增一列(如 salary),该列值为指定多列(如 basic_sal、Allowance、Perk)的行级求和,并将结果写入新文件或覆盖原文件。
本文介绍如何使用 python 的 pandas 库,向现有 csv 文件中新增一列(如 `salary`),该列值为指定多列(如 `basic_sal`、`allowance`、`perk`)的行级求和,并将结果写入新文件或覆盖原文件。
在数据处理中,经常需要基于已有数值列动态生成衍生列。例如,给定员工薪资明细 CSV 文件,需新增 salary 列,其值为基本工资(basic_sal)、津贴(Allowance)与福利(Perk)三者之和,并置于最后一列。Pandas 提供简洁高效的列操作能力,远优于手动解析或 awk 等命令行工具(尤其在列名语义化、类型安全和可维护性方面)。
以下为完整实现步骤:
使用 qbo-mileage CLI 及用户凭证,从 Airtable、Outlook 或 Google Calendar 记录生成 QuickBooks Online 里程 CSV 文件。
- 读取 CSV 文件:使用 pd.read_csv() 加载数据为 DataFrame;
- 新增计算列:直接通过赋值语法 df['salary'] = ... 创建新列,支持对多列进行逐行算术运算;
- 保存结果:调用 to_csv() 输出至新文件(推荐),或设置 index=False 避免写入行索引。
import pandas as pd
# 读取原始 CSV(请替换为实际路径)
df = pd.read_csv("employees.csv")
# 新增 salary 列:对 basic_sal、Allowance、Perk 三列求和
df["salary"] = df["basic_sal"] + df["Allowance"] + df["Perk"]
# 保存结果(不保留索引,确保格式与原始一致)
df.to_csv("employees_with_salary.csv", index=False)✅ 注意事项:
- 确保参与计算的列均为数值类型(int64 或 float64)。若含空值或非数字字符,建议先执行 df[["basic_sal","Allowance","Perk"]] = df[["basic_sal","Allowance","Perk"]].apply(pd.to_numeric, errors='coerce') 进行清洗;
- 新增列默认追加至最右侧,符合“最后一列”要求;
- 如需覆盖原文件,请谨慎使用 to_csv("employees.csv", index=False),建议先备份原始数据;
- 若需同时添加多个新列(如 gross, tax, net),可链式赋值或分步定义,保持逻辑清晰。
该方法兼具可读性、扩展性与健壮性,是数据预处理阶段添加衍生指标的标准实践。

















