首页 > 解决方案 > 将目录中的 csv 文件另存为单独的数据框

问题描述

我在目录中有几个文件 csv

目录

我需要做的是在文件夹中的文件上进行迭代(特别是迭代,因为我将对数据进行其他计算)并将它们pandas.read_csv 作为单独的DataFrames 读取

我写的是以下内容:

for i in os.listdir(directory):
    data = pd.read_csv(directory+ '/' +i, encoding="utf8")

当我执行上面的代码时,它只在 df 中写下最后一步的数据,当我将代码更改为以下代码时:

for i in os.listdir(directory):
    data[i] = pd.read_csv(directory+ '/' +i, encoding="utf8")

data[i]用红色标记

有人可以帮忙吗?

标签: pythonpandascsv

解决方案


如果您将第二个代码片段更改为这样,那么它应该可以工作,并且您的字典将具有文件名的键,并且值将是相应数据的 Dataframes。

data = {}
for i in os.listdir(directory):
    data[i] = pd.read_csv(directory+ '/' +i, encoding="utf8")

# or using fancy dictionary comprehensions & f-strings (needs recent python3 release)
data = {path: pd.read_csv(f'{directory}/{path}', encoding="utf8")
    for path in os.listdir(directory)}

# or using pathlib
from pathlib import Path
data = {path.name: pd.read_csv(path, encoding="utf8"
    for path in Path(directory).iterdir()}

推荐阅读