Python自动化处理Excel数据

需求描述:数据格式如下所示,需要分离出2023年7月1号之后的数据明细

数据核对与处理:从Excel文件中提取特定日期后的签收数据

1. 引言

在实际数据处理和分析过程中,经常会遇到需要从大量数据中提取出特定日期范围内的信息的需求。本文将介绍如何使用Python的pandas库来处理Excel文件,并提取出2023年7月1日之后的签收数据。

2. 准备工作

首先,我们需要导入所需的库。在本文中,我们将使用pandas库来处理Excel文件。

复制代码
import pandas as pd

3. 设置显示选项

为了能够正确显示所有列和行,我们可以设置pandas的显示选项。

复制代码
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

4. 读取Excel数据文件

接下来,我们使用pd.read_excel()函数来读取Excel文件中的数据,并指定nrows参数来限制读取的行数。

复制代码
data = pd.read_excel('C:\\Users\\Admin\\Desktop\\数据核对\\工作簿2.xlsx', nrows=600)

5. 数据处理

为了方便后续操作,我们将DataFrame的索引设置为"货件单号"和"SKU"。

复制代码
data = data.set_index(['货件单号', 'SKU'])

然后,我们将"签收明细"这一列进行拆分,并将拆分后的每个数据项排成多行。

复制代码
data = data['签收明细'].str.split('\n', expand=True).stack().reset_index(level=2, drop=True)
data.name = '签收明细'

接着,我们从拆分后的数据中提取出"日期"和"数量"两列,并将其转换为正确的数据类型。

复制代码
data = data.str.split(' \| ', expand=True)
data.columns = ['日期', '数量']
data['日期'] = pd.to_datetime(data['日期'])
data['数量'] = pd.to_numeric(data['数量'])

6. 筛选数据并保存结果

现在,我们可以筛选出2023年7月1日之后的数据,并将结果保存到Excel文件中。

复制代码
result = data[data['日期'] >= '2023-07-01'].reset_index()
result.to_excel('2023年7月1号之后签收数据.xlsx', index=True)

7. 结果展示

最后,我们输出提示信息,显示结果已经保存到文件中。

复制代码
print(f"结果已经保存到文件中:2023年7月1号之后签收数据.xlsx")

8. 总结

本文介绍了如何使用Python的pandas库处理Excel文件,并提取出特定日期范围内的签收数据。通过设置显示选项、读取Excel文件、进行数据处理、筛选数据并保存结果,我们能够高效地处理大量数据,并得到我们需要的信息

完整代码:

复制代码
import pandas as pd

# 设置最大列数为 None,以显示所有列
pd.set_option('display.max_columns', None)

# 设置最大行数为 None,以显示所有行
pd.set_option('display.max_rows', None)

# 读取Excel数据文件
data = pd.read_excel('C:\\Users\\Admin\\Desktop\\数据核对\\工作簿2.xlsx', nrows=600)

# 输出全部数据(显示所有行和列)
print(data)

# 将DataFrame的索引设置为"货件单号"和"SKU",以便后续操作
data = data.set_index(['货件单号', 'SKU'])

# 将"签收明细"这一列进行拆分,并将拆分后的每个数据项排成多行
data = data['签收明细'].str.split('\n', expand=True).stack().reset_index(level=2, drop=True)
data.name = '签收明细'

# 从拆分后的数据中提取"日期"和"数量"两列
data = data.str.split(' \| ', expand=True)
data.columns = ['日期', '数量']
data['日期'] = pd.to_datetime(data['日期'])
data['数量'] = pd.to_numeric(data['数量'])

# 筛选出 2023 年 7 月 1 日之后的数据,并将结果保存到 Excel 文件中
result = data[data['日期'] >= '2023-07-01'].reset_index() # 筛选符合条件的行,并重置索引
result.to_excel('2023年7月1号之后签收数据.xlsx', index=True) # 将结果保存到 Excel 文件中

# 输出提示信息
print(f"结果已经保存到文件中:2023年7月1号之后签收数据.xlsx")
相关推荐
ATMQuant2 分钟前
量化策略开发08:Lasso因子选择 - 因子动物园的断舍离
python·量化交易·lasso·vnpy·多因子选股
ATMQuant2 小时前
量化指标解码21:逻辑回归支撑阻力 - 让逻辑回归给关键价位打分
python·机器学习·逻辑回归·量化交易·技术指标
q0371803 小时前
深色 IDE 截图 OCR 老是漏字,我加了一层预处理,顺手把识别结果做成了可搜索历史
python
蜗牛8753 小时前
个人机票监控开源项目:6 个平台、10 条通道的自托管方案
python
秋名山小白4 小时前
Playwright UI 自动化测试实战教程
python·ui
AI源码5 小时前
基于 Python 的汽车市场数据分析与可视化平台
python·数据分析·汽车
会飞锦鲤5 小时前
基于 SVM + HOG 的铸造缺陷检测系统
python·opencv·机器学习·计算机视觉·缺陷检测·图像分类·svm
starrysky8106 小时前
zipfile 中文乱码修复:把已知 GBK 旧 ZIP 解压到正确中文目录
python
用户91294046848426 小时前
Codex 从零到能交付(09):让 Codex 写有用的测试,而不是只测成功路径
python
2601_967987376 小时前
Debian如何配置Python调试工具
python·debian·pdb·调试工具·ipdb