
本文介绍如何使用 python 的 pandas 库向 csv 文件中添加新列,并基于现有数值列(如 basic_sal、allowance、perk)自动计算总和,写入新增的 salary 列。操作简洁高效,适用于批量数据处理场景。
本文介绍如何使用 python 的 pandas 库向 csv 文件中添加新列,并基于现有数值列(如 basic_sal、allowance、perk)自动计算总和,写入新增的 salary 列。操作简洁高效,适用于批量数据处理场景。
在数据处理中,经常需要基于已有字段生成衍生列——例如将基本工资、津贴与福利相加得出总薪资。Pandas 提供了直观且高性能的方式完成该任务,无需逐行遍历或依赖 shell 工具(如 awk),代码可读性强、易于维护。
以下是一个完整、可直接运行的示例:
import pandas as pd
# 读取原始 CSV 文件(请替换为实际路径)
df = pd.read_csv("sample.csv")
# 新增 'salary' 列:对指定三列求和
df["salary"] = df["basic_sal"] + df["Allowance"] + df["Perk"]
# 将结果保存回 CSV(可选:index=False 避免写入行索引)
df.to_csv("output.csv", index=False)
✅ 注意事项:
Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。
- 确保 basic_sal、Allowance 和 Perk 列均为数值类型(int64 或 float64)。若含空值或非数字字符,建议先清洗:
df[["basic_sal", "Allowance", "Perk"]] = df[["basic_sal", "Allowance", "Perk"]].apply(pd.to_numeric, errors='coerce')
- 若需保留原始文件,务必使用 to_csv() 指定新文件名;直接覆盖原文件前请备份。
- 列名严格区分大小写,请核对 CSV 中的实际标题(如 Perk 不是 perk)。
执行后,输入文件:
Emdid,name,basic_sal,Allowance,Perk 11,Dave,1100,500,50 22,Gina,1000,600,50 33,Kyle,2000,300,100
将生成输出:
Emdid,name,basic_sal,Allowance,Perk,salary 11,Dave,1100,500,50,1650 22,Gina,1000,600,50,1650 33,Kyle,2000,300,100,2400
该方法扩展性强:只需修改列名列表和运算逻辑(如改用 df[["col1","col2"]].sum(axis=1)),即可适配任意数量列的聚合计算。










