读取 zip 中的所有 csv 文件,并将相应的 csv 文件名作为数据帧变量名
Posted
技术标签:
【中文标题】读取 zip 中的所有 csv 文件,并将相应的 csv 文件名作为数据帧变量名【英文标题】:Read all csv files in a zip with respective csv filenames as dataframe variable names 【发布时间】:2021-04-08 18:45:21 【问题描述】:我需要从 zip 文件夹中读取所有 CSV 文件,将每个文件读入单独的数据框,并且数据框名称与 CSV 文件的名称相同。以下是我到目前为止所做的,我很难将文件读取分配给文件名。非常感谢任何帮助!
import os
import zipfile
csvNameList = []
with zipfile.ZipFile('../data/999915.zip') as z:
for filename in z.namelist():
csvNameList.append(filename.split(".")[1])
df_name = filename.split(".")[1]
df_name = pd.read_csv(z.open(filename),
header=None,
sep='\|\|@@##',
na_values='\\N')
我希望能够将 CSV 引用为存储在 csvNameList 变量中的名称的数据框。
【问题讨论】:
您可能需要dict
、d
来存储这些,其中键为filename.split(".")[1]
,值为df
,由pd.read_csv
调用产生,允许您访问d['your_filename']
的 DataFrame
我想我差不多了,谢谢你建议字典方法,它对我有用!
【参考方案1】:
这将创建一个数据框字典:
with zipfile.ZipFile('../data/999915.zip') as z:
dataframes = filename.split(".")[1]: pd.read_csv(z.open(filename),header=None,sep='\|\|@@##',na_values='\\N') for filename in z.namelist()
【讨论】:
嘿,谢谢,字典方法奏效了。我只需将“encoding='utf8'”参数添加到字典的值侧,如果我要从 zip 加载单个文件,我不需要它。以上是关于读取 zip 中的所有 csv 文件,并将相应的 csv 文件名作为数据帧变量名的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 python 从位于同一目录中的多个 zip 文件夹中读取 csv 文件?
如何使用 spark(python)读取 zip 文件中的 CSV 文件的内容 [重复]