利用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 的小技巧
到此这篇关于利用Python批量循环读取Excel的技巧分享的文章就介绍到这了,更多相关Python批量循环读取Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
下面小编就为大家带来一篇Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-05-05
python基于pygame实现响应游戏中事件的方法(附源码)
这篇文章主要介绍了python基于pygame实现响应游戏中事件的方法,实例分析了Python基于pygame针对键盘及鼠标事件的响应方法,具有一定参考借鉴价值,需要的朋友可以参考下2015-11-11
python将MongoDB里的ObjectId转换为时间戳的方法
这篇文章主要介绍了python将MongoDB里的ObjectId转换为时间戳的方法,涉及Python操作MongoDB及字符串转换的技巧,具有一定参考借鉴价值,需要的朋友可以参考下2015-03-03


最新评论