
本文介绍如何利用 python 的 pandas 库,向现有 csv 文件中添加多个新列(此处为一列),并基于已有数值列(basic_sal、allowance、perk)自动计算总和,写入新列 salary,最后可选保存更新后的数据。
本文介绍如何利用 python 的 pandas 库,向现有 csv 文件中添加多个新列(此处为一列),并基于已有数值列(basic_sal、allowance、perk)自动计算总和,写入新列 salary,最后可选保存更新后的数据。
在数据处理中,经常需要基于原始字段派生新字段——例如将基本工资、津贴与福利相加得到“应发工资”。Pandas 提供了简洁高效的列操作能力,远胜于手动字符串处理或复杂 awk 脚本。
以下为完整实现步骤:
-
读取 CSV 文件
使用 pd.read_csv() 加载数据,自动解析表头与各列类型(数值列将被识别为 int64 或 float64,确保后续计算可行):import pandas as pd df = pd.read_csv("data.csv") # 替换为你的实际文件路径 -
新增计算列
直接通过赋值语法创建新列 salary,其值为三列之和。Pandas 会自动按行对齐执行向量化加法,高效且无需循环:df["salary"] = df["basic_sal"] + df["Allowance"] + df["Perk"]
✅ 注意:列名严格区分大小写,且需确保 basic_sal、Allowance、Perk 在原始 CSV 中真实存在且无缺失值(若含空值,结果将为 NaN;如需容错,可改用 df[["basic_sal", "Allowance", "Perk"]].sum(axis=1, skipna=True))。
-
查看与保存结果
打印前几行验证:print(df.head())
输出示例:
Miller CSV TSV JSON 数据处理器下载Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。
Emdid name basic_sal Allowance Perk salary 0 11 Dave 1100 500 50 1650 1 22 Gina 1000 600 50 1650 2 33 Kyle 2000 300 100 2400
若需覆盖原文件或另存为新 CSV,调用 to_csv():
df.to_csv("data_with_salary.csv", index=False) # index=False 避免写入行号
? 进阶提示:
- 如需添加多列(如 gross, tax, net),可链式赋值:
df["gross"] = ...; df["tax"] = ...; df["net"] = ... - 支持更复杂逻辑:df["salary"] = df.eval("basic_sal + Allowance + Perk")(适合表达式较复杂时)。
- 列顺序可调整:df = df[["Emdid", "name", "basic_sal", "Allowance", "Perk", "salary"]]
该方法兼具可读性、健壮性与扩展性,是现代数据预处理的标准实践。










