Lea múltiples archivos * .txt en Pandas Dataframe con nombre de archivo como encabezado de columna
Estoy tratando de importar un conjunto de archivos * .txt. Necesito importar los archivos en columnas sucesivas de un Pandas DataFrame en Python.
Requisitos e información general:
Cada archivo tiene una columna de númerosNo hay encabezados presentes en los archivosLos enteros positivos y negativos son posiblesEl tamaño de todos los archivos * .txt es el mismoLas columnas del DataFrame deben tener el nombre del archivo (sin extensión) como encabezadoEl número de archivos no se conoce de antemanoAquí hay un archivo de muestra * .txt. Todos los demás tienen el mismo formato.
16
54
-314
1
15
4
153
86
4
64
373
3
434
31
93
53
873
43
11
533
46
Aquí está mi intento:
import pandas as pd
import os
import glob
# Step 1: get a list of all csv files in target directory
my_dir = "C:\\Python27\Files\\"
filelist = []
filesList = []
os.chdir( my_dir )
# Step 2: Build up list of files:
for files in glob.glob("*.txt"):
fileName, fileExtension = os.path.splitext(files)
filelist.append(fileName) #filename without extension
filesList.append(files) #filename with extension
# Step 3: Build up DataFrame:
df = pd.DataFrame()
for ijk in filelist:
frame = pd.read_csv(filesList[ijk])
df = df.append(frame)
print df
Los pasos 1 y 2 funcionan. Tengo problemas con el paso 3. Aparece el siguiente mensaje de error:
Traceback (most recent call last):
File "C:\Python27\TextFile.py", line 26, in <module>
frame = pd.read_csv(filesList[ijk])
TypeError: list indices must be integers, not str
Pregunta: ¿Hay una mejor manera de cargar estos archivos * .txt en un marco de datos de Pandas? ¿Por qué read_csv no acepta cadenas para nombres de archivo?