• 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['数量'])
    
    # 筛选出 202371 日之后的数据,并将结果保存到 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")
    复制代码

     

  • 相关阅读:
    尝试用Unity还原蔚蓝(Celeste)—— 真·操控、移动、手感篇
    学习记忆——宫殿篇——记忆宫殿——数字编码——三十六计
    智能恒等于推荐系统
    用A-Spice思路解读“西门庆和潘金莲的不可描述之事”,不信你看不懂
    ble 理论(15)ble 连接详解
    记录beforeRouteEnter函数内部 this 是undefined的解决方案
    《TCP/IP网络编程》阅读笔记--Socket类型及协议设置
    ElasticSearch(八)【过滤查询】
    2024有哪些免费的苹果mac电脑系统清理软件?
    UI自动化测试框架:PO 模式+数据驱动(超详细)
  • 原文地址:https://www.cnblogs.com/lcl-cn/p/17804280.html