需求描述:数据格式如下所示,需要分离出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")

Python自动化处理Excel数据的更多相关文章

  1. Delphi中使用python脚本读取Excel数据

    Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...

  2. 用python实现简单EXCEL数据统计的实例

    用python实现简单EXCEL数据统计的实例 下面小编就为大家带来一篇用python实现简单EXCEL数据统计的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 任 ...

  3. 数据测试001:利用python连接数据库插入excel数据

    数据测试001:利用python连接数据库插入excel数据 最近在做数据测试,主要是做报表系统,需要往数据库插入数据验证服务逻辑,本次介绍如何利用python脚本插入Oracle和Mysql库中: ...

  4. 用 python实现简单EXCEL数据统计

    任务: 用python时间简单的统计任务-统计男性和女性分别有多少人. 用到的物料:xlrd 它的作用-读取excel表数据 代码: import xlrd workbook = xlrd.open_ ...

  5. python selenium中Excel数据维护(二)

    接着python里面的xlrd模块详解(一)中我们我们来举一个实例: 我们来举一个从Excel中读取账号和密码的例子并调用: ♦1.制作Excel我们要对以上输入的用户名和密码进行参数化,使得这些数据 ...

  6. python selenium中Excel数据维护(二)

    接着python里面的xlrd模块详解(一)中我们我们来举一个实例: 我们来举一个从Excel中读取账号和密码的例子并调用: ♦1.制作Excel我们要对以上输入的用户名和密码进行参数化,使得这些数据 ...

  7. python中操作excel数据 封装成一个类

    本文用python中openpyxl库,封装成excel数据的读写方法 from openpyxl import load_workbook from openpyxl.worksheet.works ...

  8. python中操作excel数据

    python操作excel,python有提供库 本文介绍openpyxl,他只支持新型的excell( xlsx)格式,读取速度还可以 1.安装 pip install openpyxl 2.使用 ...

  9. 使用python,将excel数据批量导入数据库

    这是上一篇文章的优化版本,相较于一条一条的执行sql语句,本文中,将excel中所有的数据先写到list列表中 在通过函数 cursor.executemany(sql, list) 一次性写入到数据 ...

  10. python实现对excel数据进行修改/添加

    import osimport xlrdfrom xlutils.copy import copydef base_dir(filename=None): return os.path.join(os ...

随机推荐

  1. 行行AI人才直播第10期:CTC智仝咨询联合创始人王发鑫《AI时代职场进阶之路——资深猎头的职场洞见》

    当今AI技术正在快速渗透各个行业,从去年热门的AIGC到今年爆火的ChatGPT,人工智能高速发展让人惊叹的同时,也让"算法取代人类"."AI或带来失业潮"等老 ...

  2. switch写法详解

    我们在开发项目中经常遇到对数据的判断进行相应的逻辑(if..else  ,三元运算等),Switch 语句用来选择多个需要执行的代码块 ,一定程度上简化了if....else 1. 语法 switch ...

  3. java volatile是如何保证可见性的?

    lock前缀指令干的事. volatile 修饰的变量在进行写操作时会多出一条如下的汇编指令: lock addl $0x0,(%esp) volatile就是靠这个lock前缀指令去实现可见性的,当 ...

  4. MIT 6.5840 Raft Implementation(2B, Log Replication)

    Raft实现思路+细节(2B) 任务分解 2B中最主要的任务就是进行日志的复制.Raft是一个强领导人的系统,这意味着所有的日志添加都是由领导人发起的,与之相类似的,还有很多其他的结论(它们都是比较显 ...

  5. Git:GitLab使用AD账户报错——remote: HTTP Basic: Access denied

    错误原因 当第一次使用AD账户进入GitLab时,需要进行密码重置,之后重新登录并进行克隆操作即可.

  6. 【译】All-In-One Search 在 Visual Studio 17.6 中可用

    一体化搜索体验是在17.2预览版中首次引入的,从那以后我们一直在改进它的质量.新的搜索将代码和特性搜索功能合并到一个 UI 中,因此您可以在一个地方找到所需的东西.实时结果和结果预览加速了这个过程,让 ...

  7. salesforce零基础学习(一百三十)Report 学习进阶篇

    本篇参考: https://help.salesforce.com/s/articleView?id=sf.reports_summary_functions_about.htm&type=5 ...

  8. Unity UGUI的InputField(输入框)组件的介绍及使用

    UGUI的InputField(输入框)组件的介绍及使用 1. 什么是UGUI的InputField组件? UGUI的InputField组件是Unity中的一个用户界面组件,用于接收用户的输入.它可 ...

  9. 【io_uring】内核源码分析(更新中)

    文章目录 `io_uring` 系统调用 `io_uring_setup` `io_uring_setup` `io_uring_create` `io_sq_offload_start` 系统调用 ...

  10. 《CTFshow-Web入门》02. Web 11~20

    @ 目录 web11 题解 原理 web12 题解 web13 题解 web14 题解 web15 题解 web16 题解 原理 web17 题解 web18 题解 原理 web19 题解 web20 ...