Extraiga las columnas separadas por espacios de un archivo .txt y agréguelas para guardarlas en un nuevo dataframe.
Soy un traductor de español que traduce documentos de tecnología de la información. Traduzca lo siguiente al español. No traduzca el código y la salida en formato markdown.
Soy un novato cuando se trata de Python y estoy intentando crear un script que recorra una carpeta y tome todos los archivos .txt que contengan 2 columnas de datos que solo estén separados por espacios. Luego quiero tomar solo la segunda columna de estos archivos .txt y guardarlos en un nuevo dataframe con ‘lag’ como índice y el nombre de archivo como encabezado. Me he quedado un poco atascado, ya que no puedo hacer más que imprimir los nombres de archivo y eso es todo. Agradecería mucho cualquier ayuda. (PS disculpas por la línea de -50 a 50 vergonzosa, sé que hay una forma más eficiente de hacerlo, pero no pude encontrar una forma que funcionara con valores negativos. Gracias de antemano).
def changeFolder(self):
#print('woo')
folder = QFileDialog.getExistingDirectory(None, 'Datos del proyecto', 'Archivos .csv')
print(folder)
if folder == None:
return
else:
print(folder)
# import required modules
print('woo')
from glob import glob
import pandas as pd
import numpy as np
import os
for files in os.listdir(folder):
if files.endswith(".txt"):
print(files)
data = [pd.read_csv(files, sep=" ", header=None) for files in folder]
for data in files:
print(data)
# transpose columns using numpy
#tcols = np.transpose(cols)
# create lag variable for the time lag array from -50 to 50
lag = [-50, -49, -48, -47, -46, -45, -44, -43, -42, -41, -40, -39, -38, -37, -36, -35, -34, -33, -32, -31, -30,
-29, -28, -27, -26, -25, -24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9,
-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50]
# constructs dataframe using pandas with the transposed columns, header as respective filenames and index column as time lag
df = pd.DataFrame(data, columns=[files], index=lag)
# converts dataframe to .csv file and saves as specified filename below in specified path
extracted = df.to_csv(r'D:\GLaDOS-CAMPUS\data\TestData-AB\ExtractedABFiles.csv')
##Dialogue box in case of success
mbox = QMessageBox()
mbox.setText("¡Espero que esto haya funcionado!")
mbox.setDetailedText("")
mbox.setStandardButtons(QMessageBox.Ok)
mbox.setWindowTitle('Procesador de lotes de archivos CSV')
mbox.exec_()
davy.ai
Script para recorrer una carpeta y extraer la segunda columna de todos los archivos .txt
El siguiente script de Python recorre una carpeta especificada y extrae la segunda columna de todos los archivos .txt que contienen 2 columnas de datos separados por espacios. Los datos extraídos se guardan en un nuevo marco de datos con ‘lag’ como índice y el nombre del archivo como encabezado. Se crea un array con tiempos de retardo de -50 a 50 que se utiliza como columna de índice. El marco de datos resultante se convierte en un archivo .csv y se guarda en una ruta especificada.
Este script utiliza la biblioteca pandas para leer y manipular los datos y la biblioteca os para navegar por el sistema de archivos. El marco de datos de resultado se crea primero extrayendo la segunda columna de todos los archivos .txt válidos y agregándolos como columnas a un marco de datos vacío con los tiempos de retardo como índice. Cualquier valor faltante se interpola utilizando un método de interpolación lineal. El marco de datos resultante se guarda luego como un archivo .csv.