🧾 项目背景
在日常的数据处理过程中,我们经常会遇到某些字段中包含多个信息的情况。
例如:
- 时间字段同时包含“年月日”和“时分秒”;
- 地址字段包含省市区;
- 品牌名称与编号混合存储。
这时候我们就需要对这些字段进行拆分,以便后续分析或建模使用。
本文将通过一个完整的 Python 脚本示例,演示如何使用 pandas 对 Excel 文件中的 时间列 进行拆分,并将结果写入新工作表。
📁 数据说明
假设你有一个名为 测试表2.xlsx 的 Excel 文件,其中包含如下字段:
品牌 | 创建时间 |
A品牌 | 2024-10-05 14:30:00 |
B品牌 | 2023-11-12 09:15:00 |
C品牌 | 2024-12-25 18:45:00 |
我们的目标是:
- 将“创建时间”列拆分为“年月日”和“时分秒”两个新列;
- 提取这两个字段并保存到新的工作表中。
🧪 脚本解析
1. 导入库并读取数据
import pandas as pd
# 读取Excel文件,并设置“品牌”列为索引
brand = pd.read_excel('测试表2.xlsx', index_col='品牌')
index_col='品牌' 将品牌列设为行标签,方便后续操作。
2. 字段类型转换
# 将“创建时间”列转换为字符串类型,便于拆分
brand['创建时间'] = brand['创建时间'].astype(str)
默认情况下,“创建时间”列可能被识别为 datetime 类型,为了使用字符串操作,先将其转为 str 类型。
3. 拆分字段
# 使用空格作为分隔符进行拆分,expand=True 表示返回 DataFrame
dt = brand['创建时间'].str.split(expand=True)
拆分后,dt[0] 是“年月日”,dt[1] 是“时分秒”。
4. 添加新列并提取字段
# 新增两列,分别保存年月日和时分秒
brand['年月日'] = dt[0]
brand['时分秒'] = dt[1]
# 提取所需字段组成新DataFrame
new_data = brand[['年月日', '时分秒']]
此时 new_data 中只保留了我们关心的两个字段。
5. 打印结果(调试用)
print(brand)
可用于查看原始数据和新增字段的内容。
6. 写入 Excel 文件
# 将结果写入原Excel文件的新sheet中
with pd.ExcelWriter('测试表2.xlsx', mode='a', engine='openpyxl', if_sheet_exists='replace') as writer:
new_data.to_excel(writer, sheet_name='处理后数据', index=True)
使用 openpyxl 引擎支持 .xlsx 格式;if_sheet_exists='replace' 表示如果已存在该 sheet,则替换内容。
✅ 示例输出
运行脚本后,你将在 测试表2.xlsx 中看到新增的 处理后数据 工作表,内容如下:
品牌 | 年月日 | 时分秒 |
A品牌 | 2024-10-05 | 14:30:00 |
B品牌 | 2023-11-12 | 09:15:00 |
C品牌 | 2024-12-25 | 18:45:00 |
📝 总结
本文通过一个实际案例,介绍了如何使用 pandas 对 Excel 数据进行:
- 字段类型转换
- 字符串拆分
- 新增字段提取
- 结果写入原文件
这些操作是数据预处理阶段非常常见的任务,掌握它们有助于提升数据分析效率。