首页 > 解决方案 > 从许多 txt 文件创建许多 df

问题描述

我在同一个目录中有许多随机名称的文本文件。我想创建与 txt 文件相同数量的数据帧。此 dfs 必须与 txt 文件同名。

import os
import numpy as np
import pandas as pd

ruta="/path/to/dir/"

files = [f for f in os.listdir(ruta) if f.endswith(".txt")]
    #______________________________________________________________________________
#Apertura de los archivos de textos disponibles
tope=len(files)+1
for i in range(1,tope):
    exec("e{}=open(ruta+files[i-1],mode='r', encoding='latin 1')".format(i))

这是我正在尝试的,但不完整。你还有什么建议吗?

谢谢。

标签: pythonpandas

解决方案


您绝对不希望创建任意数量的 DataFrame。我同意@ti7,您至少应该在字典中收集 DataFrame。

但是,如果文件包含兼容的表格数据,并且您希望将所有数据一起处理,则应将数据编译到单个 DataFrame 中,并带有一个额外的字段来标识原始文件:

files = [f for f in os.listdir(ruta) if f.endswith(".txt")]
df = pd.DataFrame()
for f in files:
    df.append(pd.read_csv(f).assign(file_name=f))

推荐阅读