Python自动化|几秒提取成千上百个Excel指定数据,你学废了吗?

在数据密集的工作环境中,我们经常需要从多个Excel文件中提取指定的数据.这种重复性的工作不仅枯燥,还非常耗时.今天,我将分享如何使用Python实现从成千上万个Excel文件中自动提取数据的方法,让你几秒钟完成5000分钟的工作,彻底告别枯燥重复工作.

  • 这里插播一条粉丝福利,如果你正在学习Python或者有计划学习Python,想要突破自我,对未来十分迷茫的,可以点击这里获取最新的Python学习资料和学习路线规划(免费分享,记得关注)

案例背景

假设你是一个数据分析师,需要从不同部门上传的Excel文件中提取销售数据.每个文件都有不同的格式,但你只需要提取其中某个指定表格的特定列数据,并汇总到一个总表中.

示例

我们将使用以下Python库来实现这个功能:

pandas:用于处理数据.

openpyxl:用于读取和写入Excel文件.

glob:用于查找匹配的文件路径名.

首先,确保你已经安装了这些库.如果没有,请使用以下命令安装:

pip install pandas openpyxl

步骤一:准备数据

假设你有多个Excel文件,文件名格式为data_1.xlsx、data_2.xlsx、……、data_n.xlsx,每个文件都包含如下数据:

data_1.xlsx

| ID | Name | Sales |
|----|------|-------|
| 1  | A    | 1000  |
| 2  | B    | 1500  |
| 3  | C    | 2000  |

data_2.xlsx

| ID | Name | Sales |
|----|------|-------|
| 1  | D    | 1200  |
| 2  | E    | 1600  |
| 3  | F    | 2100  |

步骤二:编写Python代码

以下是实现自动化提取数据的Python代码:

import pandas as pd
import openpyxl
import glob

def extract_data_from_excel(files_pattern, sheet_name, column_name):
    # 存储所有提取的数据
    all_data = []

    # 查找所有匹配的Excel文件
    for file in glob.glob(files_pattern):
        # 读取Excel文件中的指定工作表
        df = pd.read_excel(file, sheet_name=sheet_name)
        # 提取指定列的数据
        data = df[column_name].tolist()
        # 将数据添加到总列表中
        all_data.extend(data)
    
    return all_data

# 使用示例
files_pattern = "data_*.xlsx"  # 匹配所有以data_开头的Excel文件
sheet_name = "Sheet1"          # 工作表名称
column_name = "Sales"          # 需要提取的列

# 提取数据
extracted_data = extract_data_from_excel(files_pattern, sheet_name, column_name)

# 打印提取的数据
print("Extracted Data:", extracted_data)

# 将提取的数据保存到新的Excel文件
output_df = pd.DataFrame(extracted_data, columns=[column_name])
output_df.to_excel("extracted_sales_data.xlsx", index=False)
print("Data saved to extracted_sales_data.xlsx")

详细解释

导入库:导入pandas、openpyxl和glob库.

定义函数:extract_data_from_excel函数接受三个参数:文件路径模式、工作表名称和列名称.

查找文件:使用glob.glob查找匹配的Excel文件.

读取和提取数据:循环遍历所有文件,读取指定工作表并提取指定列的数据.

汇总数据:将提取的数据汇总到一个列表中.

保存数据:将汇总的数据保存到一个新的Excel文件中.

输出

假设你有两个文件data_1.xlsx和data_2.xlsx,运行代码后,你会在当前目录下生成一个名为extracted_sales_data.xlsx的新文件,内容如下:

| Sales |
|-------|
| 1000  |
| 1500  |
| 2000  |
| 1200  |
| 1600  |
| 2100  |

进一步优化

你可以进一步优化代码,例如添加错误处理、处理不同格式的Excel文件或指定提取多个列的数据.以下是一个改进版本的代码:

import pandas as pd
import openpyxl
import glob

def extract_data_from_excel(files_pattern, sheet_name, columns):
    all_data = []

    for file in glob.glob(files_pattern):
        try:
            df = pd.read_excel(file, sheet_name=sheet_name)
            data = df[columns].copy()
            all_data.append(data)
        except Exception as e:
            print(f"Error processing file {file}: {e}")
    
    result_df = pd.concat(all_data, ignore_index=True)
    return result_df

# 使用示例
files_pattern = "data_*.xlsx"
sheet_name = "Sheet1"
columns = ["ID", "Name", "Sales"]

extracted_data = extract_data_from_excel(files_pattern, sheet_name, columns)
extracted_data.to_excel("extracted_sales_data.xlsx", index=False)
print("Data saved to extracted_sales_data.xlsx")
  • 通过这种方式,你可以更加灵活和高效地处理大量Excel文件,提取你需要的数据,几秒钟完成原本需要花费大量时间的工作.

最后,我精心筹备了一份全面的Python学习大礼包,完全免费分享给每一位渴望成长、希望突破自我现状却略感迷茫的朋友。无论您是编程新手还是希望深化技能的开发者,都欢迎加入我们的学习之旅,共同交流进步!


🌟 学习大礼包包含内容:

Python全领域学习路线图:一目了然,指引您从基础到进阶,再到专业领域的每一步学习路径,明确各方向的核心知识点。

超百节Python精品视频课程:涵盖Python编程的必备基础知识、高效爬虫技术、以及深入的数据分析技能,让您技能全面升级。

实战案例集锦:精选超过100个实战项目案例,从理论到实践,让您在解决实际问题的过程中,深化理解,提升编程能力。

华为独家Python漫画教程:创新学习方式,以轻松幽默的漫画形式,让您随时随地,利用碎片时间也能高效学习Python。

互联网企业Python面试真题集:精选历年知名互联网企业面试真题,助您提前备战,面试准备更充分,职场晋升更顺利。

👉 立即领取方式:只需【点击这里】,即刻解锁您的Python学习新篇章!让我们携手并进,在编程的海洋里探索无限可能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值