总结:在工作场景中的应用。(Excel)

一.字段的合并方法(将多列内容合并成一列)

处理 Excel 操作是 Python 办公自动化的常用场景,我们可以用pandas库(简单易用)来实现这些功能。下面我会用 "普通人能看懂" 的方式,一步步讲解每个操作的具体方法,包括准备工作、代码和结果说明。

代码示例:

python 复制代码
# 1. 导入工具
import pandas as pd

# 2. 读取Excel文件(确保文件和代码在同一个文件夹)
df = pd.read_excel("data.xlsx")

# 3. 合并字段(核心操作)
# 合并"姓"和"名"为"姓名"(中间加空格)
df["姓名"] = df["姓"] + " " + df["名"]

# 合并"省"和"市"为"地址"(中间加"省"和"市"字)
df["地址"] = df["省"] + "省" + df["市"] + "市"

# 4. 保存结果到新的Excel
df.to_excel("result.xlsx", index=False)  # index=False表示不保存行号

2. 字段的拆分方法(将一列内容拆分成多列)

场景:比如有 "姓名" 列(格式为 "张 三"),想拆成 "姓" 和 "名";或者有 "日期" 列(格式为 "2023-10-01"),想拆成 "年"" 月 ""日"。

python 复制代码
# 1. 导入工具
import pandas as pd

# 2. 读取Excel文件
df = pd.read_excel("data.xlsx")

# 3. 拆分字段(核心操作)
# 拆分"姓名"列(按空格拆分,拆成2列)
# expand=True表示拆分成多列
name_split = df["姓名"].str.split(" ", expand=True)
df["姓"] = name_split[0]  # 第一部分作为"姓"
df["名"] = name_split[1]  # 第二部分作为"名"

# 拆分"日期"列(按"-"拆分,拆成3列)
date_split = df["日期"].astype(str).str.split("-", expand=True)  # 先转成字符串
df["年"] = date_split[0]
df["月"] = date_split[1]
df["日"] = date_split[2]

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

3. 字段的匹配操作(类似 Excel 的 VLOOKUP 功能)

场景:有两个表,想根据一个共同的 "关键词"(比如 "学号"),把第二个表的信息匹配到第一个表中。

python 复制代码
# 1. 导入工具
import pandas as pd

# 2. 读取两个表
df1 = pd.read_excel("表1.xlsx")  # 主表(需要补充信息的表)
df2 = pd.read_excel("表2.xlsx")  # 副表(提供补充信息的表)

# 3. 匹配操作(核心:类似VLOOKUP)
# on="学号":根据"学号"这一列匹配
# how="left":保留主表(df1)的所有行,即使副表没有对应数据
merged_df = pd.merge(df1, df2, on="学号", how="left")

# 4. 保存结果
merged_df.to_excel("匹配结果.xlsx", index=False)

4. 表格的合并方法(将多个表上下拼接成一个表)

场景:比如有 "1 班成绩.xlsx" 和 "2 班成绩.xlsx",结构完全相同(列名一样),想合并成 "全年级成绩.xlsx"。

python 复制代码
# 1. 导入工具
import pandas as pd

# 2. 读取多个表
df1 = pd.read_excel("1班.xlsx")
df2 = pd.read_excel("2班.xlsx")

# 3. 合并表格(核心:上下拼接)
# axis=0表示纵向合并(上下拼),ignore_index=True表示重新编号行
combined_df = pd.concat([df1, df2], axis=0, ignore_index=True)

# 4. 保存结果
combined_df.to_excel("全年级.xlsx", index=False)

5. 表格的拆分方法(将一个表按条件拆分成多个表)

场景:有一个 "全年级成绩.xlsx",想按 "班级" 列拆分成 "1 班.xlsx""2 班.xlsx" 等多个文件。

python 复制代码
# 1. 导入工具
import pandas as pd

# 2. 读取总表
df = pd.read_excel("全年级.xlsx")

# 3. 按"班级"列拆分(核心操作)
# 获取所有不重复的班级(比如["1班", "2班"])
classes = df["班级"].unique()

# 循环每个班级,保存成单独的文件
for cls in classes:
    # 筛选出当前班级的所有行
    class_df = df[df["班级"] == cls]
    # 保存为Excel(文件名用班级名)
    class_df.to_excel(f"{cls}.xlsx", index=False)

6. 表格的转换方法(行列转换、格式转换等)

场景:比如想把表格 "转置"(行变列、列变行);或者把 "宽表" 转成 "长表"(适合统计分析)。

表格转置(行列互换)

python 复制代码
import pandas as pd

df = pd.read_excel("销售数据.xlsx")
# 转置操作(T是transpose的缩写)
transposed_df = df.T  # 行变列,列变行
# 重置表头(转置后第一行作为表头)
transposed_df.columns = transposed_df.iloc[0]  # 用第一行数据作为列名
transposed_df = transposed_df.drop(transposed_df.index[0])  # 删除原来的表头行

transposed_df.to_excel("转置结果.xlsx", index_label="产品")  # index_label给行名加标题

操作 2:宽表转长表(适合数据透视)

python 复制代码
import pandas as pd

df = pd.read_excel("销售数据.xlsx")
# 宽表转长表(核心用melt函数)
# id_vars:保留不变的列(这里是"月份")
# var_name:原来的列名(产品A、产品B)存到"产品"列
# value_name:原来的数值存到"销量"列
long_df = df.melt(id_vars=["月份"], var_name="产品", value_name="销量")

long_df.to_excel("长表结果.xlsx", index=False)
相关推荐
GitCode官方7 小时前
直播预告 | Excelize 跨语言实战
开源·excel·gitcode
listhi5207 小时前
C# 操作 Excel
c#·excel·mfc
mysusheng8 小时前
2025 批量下载雪球和东方财富帖子和文章导出excel和pdf
pdf·excel
mudtools10 小时前
使用二次封装的Excel COM 组件操作Excel\WPS ET IExcelRange 高级应用
.net·excel
尼恩久1 天前
Excel工作技巧
爬虫·python·excel
玩泥巴的2 天前
使用二次封装的Excel COM 组件操作Excel\WPS ET IExcelRange 高级应用
excel·二次开发·com互操作
SYWG02 天前
【DBCExcelConvent】CAN报文解析辅助工具之DBC与Excel互转
c语言·qt·excel·can·dbc
诗酒当趁年华2 天前
Yapi接口文档导出测试用例至Excel中
yapi·测试用例·excel
CodeCraft Studio2 天前
国产化Excel开发组件Spire.XLS教程:Python 将 CSV 转换为 Excel(.XLSX)
windows·python·excel·csv转excel·spire·excel开发