Python 处理 Excel 数据的常用代码(含多 Sheet 快捷处理)

在数据分析、工程计算和业务报表处理中,Excel 仍然是最常见的数据格式之一。
例如:

  • 测风数据统计
  • 实验数据整理
  • 业务报表分析
  • 多文件数据汇总

如果只依赖 Excel 手动操作,不仅效率低,而且很难复现处理流程。而使用 Python 可以实现 自动化、批量化、可重复的数据处理

本文整理了 最常用、最核心的 Excel 处理代码,适合日常工作快速查阅。


一、常用库

Python 处理 Excel,最常用的是 pandas

import pandas as pd

安装方式:

pip install pandas openpyxl

说明:

作用
pandas 数据读取、清洗、统计
openpyxl 读写 xlsx 文件

二、读取 Excel 文件

1 读取 Excel

df = pd.read_excel("data.xlsx")
print(df.head())

查看前5行数据:

时间      风速      风向
2025-01-01  6.5     120
2025-01-02  7.2     140
...

2 读取指定 Sheet

df = pd.read_excel("data.xlsx", sheet_name="Sheet1")

3 读取指定列

df = pd.read_excel("data.xlsx", usecols=["时间", "风速", "风向"])

如果 Excel 有很多列,这样可以提高效率。


三、查看数据基本信息

查看前几行

df.head()

查看数据规模

df.shape

返回:

(10000, 6)

表示:

10000行
6列

查看列名

df.columns

查看数据类型

df.dtypes

四、数据筛选

1 选择一列

ws = df["风速"]

2 选择多列

df_sub = df[["时间", "风速", "风向"]]

3 条件筛选

例如:

筛选 风速大于10

df_high = df[df["风速"] > 10]

筛选多个条件:

df_high = df[(df["风速"] > 10) & (df["风向"] < 180)]

五、缺失值处理

Excel 数据通常会有空值。

查看缺失值

df.isna().sum()

删除缺失值

df = df.dropna()

用均值填充

df["风速"] = df["风速"].fillna(df["风速"].mean())

六、列名重命名

很多 Excel 列名很复杂,例如:

平均风速(m/s)
平均风向(°)

可以统一处理:

df = df.rename(columns={
    "平均风速(m/s)": "风速",
    "平均风向(°)": "风向"
})

七、新增计算列

例如新增风速等级:

df["风速等级"] = df["风速"].apply(
    lambda x: "高风速" if x >= 10 else "低风速"
)

八、排序

按风速排序

df_sorted = df.sort_values(by="风速")

降序:

df_sorted = df.sort_values(by="风速", ascending=False)

九、分组统计

这是 Excel 处理中最常用的操作之一。

按风向扇区求平均风速

result = df.groupby("风向扇区")["风速"].mean()

多统计指标

result = df.groupby("风向扇区")["风速"].agg(["mean","max","min"])

统计数量

df.groupby("风向扇区").size()

十、时间数据处理

如果 Excel 有时间列:

2025/01/01 10:00

先转为时间格式:

df["时间"] = pd.to_datetime(df["时间"])

提取时间信息:

df["年"] = df["时间"].dt.year
df["月"] = df["时间"].dt.month
df["日"] = df["时间"].dt.day

十一、保存 Excel

保存为 Excel

df.to_excel("结果.xlsx", index=False)

保存多个 Sheet

with pd.ExcelWriter("结果.xlsx") as writer:

    df.to_excel(writer, sheet_name="原始数据", index=False)

    df_high.to_excel(writer, sheet_name="高风速数据", index=False)

    result.to_excel(writer, sheet_name="统计结果")

最终 Excel 结构:

结果.xlsx
 ├─ 原始数据
 ├─ 高风速数据
 └─ 统计结果

十二、多个 Sheet 的快捷处理(非常实用)

很多 Excel 文件包含多个 Sheet,例如:

测风塔数据.xlsx
 ├─ mast1
 ├─ mast2
 ├─ mast3

方法1:一次性读取全部 Sheet

all_sheets = pd.read_excel("data.xlsx", sheet_name=None)

返回:

dict

结构:

{
 "Sheet1": df1,
 "Sheet2": df2
}

遍历所有 Sheet

for name, df in all_sheets.items():

    print("sheet:", name)

    print(df.head())

统一处理所有 Sheet

例如:

统计每个 sheet 的平均风速:

result = {}

for name, df in all_sheets.items():

    mean_ws = df["风速"].mean()

    result[name] = mean_ws

print(result)

输出:

{
 mast1: 7.2,
 mast2: 6.8,
 mast3: 7.5
}

十三、多个 Sheet 合并

如果多个 Sheet 数据结构相同,可以合并:

all_sheets = pd.read_excel("data.xlsx", sheet_name=None)

df_all = pd.concat(all_sheets.values(), ignore_index=True)

print(df_all.shape)

最终得到一个统一的数据表。


十四、批量读取多个 Excel 文件

例如:

data/
  mast1.xlsx
  mast2.xlsx
  mast3.xlsx

批量读取:

import os
import pandas as pd

folder = "data"

all_df = []

for file in os.listdir(folder):

    if file.endswith(".xlsx"):

        path = os.path.join(folder, file)

        df = pd.read_excel(path)

        all_df.append(df)

df_all = pd.concat(all_df, ignore_index=True)

print(df_all.shape)

十五、一个完整示例

import pandas as pd

# 读取Excel
all_sheets = pd.read_excel("wind_data.xlsx", sheet_name=None)

result = []

for name, df in all_sheets.items():

    df["风速"] = df["风速"].fillna(df["风速"].mean())

    mean_ws = df["风速"].mean()

    result.append([name, mean_ws])

result_df = pd.DataFrame(result, columns=["测风塔", "平均风速"])

result_df.to_excel("统计结果.xlsx", index=False)

最终输出:

统计结果.xlsx
测风塔 平均风速
mast1 7.2
mast2 6.8

十六、最值得记住的核心代码

如果只记住最常用的:

# 读取
df = pd.read_excel("data.xlsx")

# 查看
df.head()
df.shape

# 筛选
df[df["风速"] > 10]

# 缺失值
df["风速"] = df["风速"].fillna(df["风速"].mean())

# 分组统计
df.groupby("风向扇区")["风速"].mean()

# 排序
df.sort_values(by="风速")

# 保存
df.to_excel("result.xlsx", index=False)

掌握这些基本就能解决 70%以上 Excel 数据处理问题


结语

Python 处理 Excel 的核心流程其实很简单:

读取数据 → 查看结构 → 清洗数据 → 筛选统计 → 保存结果

真正重要的不是复杂代码,而是 形成标准化的数据处理流程。当数据量越来越大时,Python 自动化处理的优势会越来越明显。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐