如何使用增量名称在Python中读取csv文件并创建不同的对象?

问题描述

我有很多文件名,例如“ 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呢?我想将df1,df2,df3等不同的数据帧分配给dataframe1,dataframe2等。

解决方法

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

function checkData() {
let summoner = playerName.value;
let sendData = {};
sendData.summoner = summoner;

let fetchData = {
    method: "POST",headers: {
        "Content-Type": "application/json"
    },body: JSON.stringify(sendData),}

fetch("/clientApi",fetchData)
.then(response => response.json())
.then(data => {
    console.log("Success: ",data);
});   

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

# 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 ...

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

,

根据您的问题,我假设您正在使用datatable(我注意到fread函数)。在python中,等效于dataframe的是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)}