如何用 Python 批量循环读取 Excel ?

在使用 Python 批量处理 Excel 时经常需要批量读取数据,常见的方式是结合glob模块,可以实现将当前文件夹下的所有csv批量读取,并且合并到一个大的DataFrame中

df_list = []
for file in glob.glob("*.csv"):
    df_list.append(pd.read_excel(file))

df = pd.concat(df_list)

但是这样要求读取的每一个csv文件格式、列名都是一样的。

如果想要将每一个csv独立的进行读取,可以使用 os 模块来循环遍历当前文件夹中的 CSV 文件,然后使用 Pandas 的 read_csv 函数来读取每个文件

import os
import pandas as pd

df_list = []

for file in os.listdir():
    if file.endswith(".csv"):
        df_list.append(pd.read_csv(file))

现在,df_list 中的每个元素都是一个 DataFrame,但是这样依旧不够完美,调用的时候依旧需要手动从列表中提取。

那如何自动读取当前文件夹下全部CSV数据,并将每个CSV赋给不同的变量

可以使用Python中的globals() 函数,它返回一个字典,其中包含当前程序的所有全局变量,例如我们可以使用如下语法来为字典中的某个键赋值:

globals()[key] = value

所以,使用下面的代码可以实现自动读取当前文件夹下全部CSV数据,并将每个CSV赋给不同的变量

df_list = []

for i, file in enumerate(os.listdir()):
    if file.endswith(".csv"):
        df_list.append(pd.read_csv(file))

for i, df in enumerate(df_list):
    globals()[f'df{i+1}'] = df

当然,类似的方法还可以应用于读取Excel的不同sheet,例如假设data.xlsx有10个sheet

df_list = [pd.read_excel("data.xlsx", sheet_name=i) for i in range(10)]

for i, df in enumerate(df_list):
    globals()[f"df{i+1}"] = df

如果你不清楚数据有多少Sheet,也可以使用 sheet_name=None,然后根据返回的字典自动读取

df_list = pd.read_excel("data.xlsx", sheet_name=None)

for i, (name, df) in enumerate(df_list.items()):
    globals()[f"df_{name}"] = df

以上就是利用 Python 读取多份 Excel 的小技巧,喜欢可以点赞、留言。
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Python 的 pandas 库来批量读取 Excel 文件。首先,你需要安装 pandas 库,可以使用以下命令进行安装: ```python pip install pandas ``` 然后,你可以使用 pandas 的 `read_excel` 函数来读取 Excel 文件。下面是一个简单的示例代码: ```python import pandas as pd # 定义要读取Excel 文件路径 file_path = 'path_to_your_excel_file.xlsx' # 使用 pandas 的 read_excel 函数读取 Excel 文件 data = pd.read_excel(file_path) # 打印读取的数据 print(data) ``` 在上面的示例代码中,你需要将 `path_to_your_excel_file.xlsx` 替换为你要读取Excel 文件的路径。读取成功后,你可以根据需要对数据进行进一步的处理和操作。 如果你希望批量读取多个 Excel 文件,可以使用循环来遍历文件列表,然后逐个读取每个文件。例如: ```python import os import pandas as pd # 定义包含要读取Excel 文件路径的文件夹路径 folder_path = 'path_to_your_folder' # 获取文件夹下所有 Excel 文件的路径列表 file_list = [os.path.join(folder_path, file) for file in os.listdir(folder_path) if file.endswith('.xlsx')] # 遍历文件列表并逐个读取 Excel 文件 for file_path in file_list: data = pd.read_excel(file_path) # 对数据进行进一步处理和操作 print(data) ``` 在上面的示例代码中,你需要将 `path_to_your_folder` 替换为包含要读取Excel 文件的文件夹路径。这样,程序会读取文件夹下所有以 `.xlsx` 结尾的 Excel 文件并逐个进行处理。 希望这个答案能够帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值