Un solo archivo de salida CSV con datos en diferentes columnas
Tengo una serie de archivos CSV con datos solo en las primeras tres columnas. Quiero copiar los datos de cada archivo CSV y pegarlos en un solo archivo CSV en orden de columna. Por ejemplo, los datos del primer archivo CSV se colocan en las columnas 1, 2 y 3 del archivo de salida. De manera similar, los datos del segundo archivo CSV van a las columnas 4, 5 y 6 del mismo archivo CSV de salida, y así sucesivamente. Cualquier ayuda sería muy apreciada. Gracias.
He probado el siguiente código pero me da el resultado en las mismas columnas solamente.
import glob
import pandas as pd
import time
import numpy as np
start = time.time()
NombreArchivo = ‘Datos_Combinados.csv’
extension = ‘csv’
todos_archivos = [i for i in glob.glob(‘*.{}’.format(extension))]
for i in range(len(todos_archivos)):
datos= pd.read_csv(todos_archivos[i],skiprows=23)
datos= datos.rename({‘G1’: ‘CH1’, ‘G2’: ‘CH2′,’Dis’: ‘CH3’},axis=1)
datos= datos[[‘CH1′,’CH2′,’CH3′]]
datos= datos.apply(pd.to_numeric, errors=’coerce’)
print(todos_archivos[i])
if i == 0:
datos.to_csv(NombreArchivo,sep=’,’,index=False,header=True,mode=’a’)
else:
datos.to_csv(NombreArchivo,sep=’,’,index=False,header=False,mode=’a’)
end = time.time()
print((end – start),’Segundos (Tiempo de ejecución)’)
davy.ai
Para lograr el resultado deseado, podemos modificar el código utilizando el método de Pandas
concat
, que combinará los datos del archivo CSV horizontalmente. Así es como se ve el código actualizado:El parámetro
usecols
se utiliza para seleccionar solo las primeras tres columnas de cada archivo CSV. El métodoconcat
se utiliza para combinar los datos horizontalmente. La listacol_names
se crea para nombrar las columnas del archivo CSV de salida según su posición. Por último, se llama al métodoto_csv
para escribir los datos combinados en un nuevo archivo CSV llamado “Output.csv”. Adicionalmente, el parámetroindex=False
se utiliza para evitar escribir una columna de índice en el archivo CSV de salida.