繁体   English   中英

如何读取Python中csv个递增名称的文件并创建不同的对象?

[英]How to read csv files in Python with incremental names and create different objects?

我有很多文件名,如“XXXXX_1.csv”、“XXXX_2.csv”、“XXXX_3.csv”....“XXXX_n.csv”我想阅读它们并创建 df1、df2、df3.... .. 我该怎么做? 在 R 中,我可以这样写

fname <- filename[i]
assign(paste0("dry_shell",i),fread(paste0("/mnt/Wendy/Data/",fname)))
}

但是 Python 呢? 我想要分配给 dataframe1、dataframe2 等的不同数据帧,如 df1、df2、df3。

假设它们都命名得很好,您可以遍历一系列数字以获取所有文件:

# this will open and do something to all files named csv_0, csv_1, and csv_2 in the
# directory /path/to/files
for i in range(3):
    with open(f"/path/to/files/csv_{i}") as file:
        # do something with the csv file ...

您还可以提供目录路径并通过打开和处理字典中的所有文件来实现相同的目标:

import os

for path in os.listdir():
    with open(path) as file:
        # do something with the csv file ...

有关 python (v3.8.5) 标准csv package 的文档,请参见此处。

根据您的问题,我假设您正在使用数据fread datatable )。 等价于 dataframe 明智的,在 python 中是 Pandas。您可以将pathlib与 Pandas 结合起来创建数据帧字典:

from pathlib import Path
directory = Path(directory that contains  "XXXXX_1.csv", "XXXX_2.csv","XXXX_3.csv"...."XXXX_n.csv")
{f"df{n}": pd.read_csv(file) for n, file in enumerate(directory.iterdir(),1)}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM