编程与 AI14 分钟阅读更新于 2026-07-15

Pandas 怎么处理表格数据:读取 Excel/CSV、清洗字段和导出结果

面向运营表格和数据整理场景,讲清 Pandas 的基本流程:读文件、看字段、处理空值、筛选数据、统计汇总和导出文件。

相关工具

Pandas 适合处理有表头的数据

Pandas 最适合处理 Excel、CSV 这类表格数据。比如用户列表、订单明细、文章数据、活动报名表、广告投放数据。它把表格读成 DataFrame,可以按列处理、筛选、统计、合并,比纯手写循环更方便。

如果只是几行简单 CSV,Python 标准库 csv 就够了;如果有很多列、需要筛选统计、处理空值、合并表格,Pandas 会省很多事。使用前要先明确表头是否干净,字段类型是否符合预期,文件编码是否正确。

读取 CSV 示例:

python代码示例
import pandas as pd

df = pd.read_csv("users.csv", encoding="utf-8-sig")

print(df.head())
print(df.columns)

先看数据,再写清洗规则

拿到表格后,不要马上写复杂逻辑。先看前几行、列名、空值、数据类型。很多问题来自表头多了空格、金额列混了文字、日期列格式不统一、手机号被 Excel 改成科学计数法。先看清楚数据,比直接处理更重要。

常用检查:

python代码示例
print(df.head(10))
print(df.info())
print(df.isna().sum())

如果列名有空格,可以统一清理:

python代码示例
df.columns = [str(col).strip() for col in df.columns]

处理空值和字段类型

空值不要一律删除。要看业务含义:手机号为空可能不能导入,备注为空很正常,金额为空可能要补 0,也可能代表数据缺失。Pandas 里可以用 fillna 填充,也可以用 dropna 删除,但都应该先想清楚规则。

示例:

python代码示例
df["城市"] = df["城市"].fillna("未知")
df["金额"] = pd.to_numeric(df["金额"], errors="coerce")

valid_df = df.dropna(subset=["手机号"])

字段类型尤其重要。订单号、手机号、身份证号虽然看起来像数字,但应该按字符串处理,否则可能丢失前导 0 或变成科学计数法。金额、数量、评分才适合转成数字。

筛选、统计和导出

Pandas 的优势在筛选和统计。比如筛选已支付订单、按城市统计人数、按日期汇总金额。很多运营报表、内容统计、数据清洗任务,都可以用类似流程完成。

示例:

python代码示例
paid = df[df["状态"] == "已支付"]

summary = (
    paid.groupby("城市")["金额"]
    .sum()
    .reset_index()
    .sort_values("金额", ascending=False)
)

summary.to_csv("summary.csv", index=False, encoding="utf-8-sig")

导出时建议使用 utf-8-sig,这样 Excel 打开中文更稳。导出前可以先用站内 CSV 工具检查表头、行数和分隔符,再交给别人使用。

常见问题

Pandas 和 csv 模块怎么选?

简单逐行转换用 csv 模块;需要筛选、统计、合并、清洗多列数据时用 Pandas。

手机号为什么不要转数字?

手机号是标识符,不是用来计算的数字。转数字可能丢失格式或造成显示问题。

导出 CSV 中文乱码怎么办?

可以用 encoding='utf-8-sig' 导出,Excel 打开通常更稳定。

Python 实用

继续阅读

返回专题