Python proporciona muchos paquetes y módulos incorporados para trabajar con archivos CSV en el espacio de trabajo. Se puede acceder a los archivos CSV dentro de los directorios y subdirectorios de un sistema y modificarlos o editarlos. El contenido del archivo CSV se puede imprimir en el shell o se puede guardar en forma de marco de datos y reproducirlo más tarde.
En este artículo, veremos cómo iterar a través de una cantidad n de archivos CSV contenidos dentro de un directorio (carpeta/ruta) que consta de diferentes tipos de archivos, y cómo trabajar con el contenido de estos archivos. Entonces, aplicamos dos métodos diferentes a nuestra tarea.
Directorio de entrada para ambos enfoques:
CSV utilizado:
CSV 1:
CSV 2:
CSV 3:
Método 1: Usando el módulo Glob
- Inicialmente, se especifica la ruta del directorio de origen, en este caso, la carpeta «csvfoldergfg» utilizando la variable de ruta.
path = "csvfoldergfg"
- Para localizar todos los archivos CSV, cuyos nombres pueden ser desconocidos, se invoca el módulo glob y se llama a su método glob. Se proporciona con la ruta usando glob.glob(path) . Esto devuelve la lista de todos los archivos CSV ubicados dentro de la ruta. La expresión regular utilizada es equivalente a *.csv, que coincide con todos los archivos para una extensión .csv.
glob.glob(path, '*.csv')
- Luego se realiza una iteración sobre estos archivos usando el bucle for y el contenido se lee en un marco de datos, usando el método read_csv() de la biblioteca pandas. La información obtenida con este método puede manipularse.
read_csv(file_contents)
El siguiente código se ejecutó en la máquina local, donde tanto el script como el directorio cuya ruta se especifica se almacenan en el mismo directorio de trabajo:
Python3
# importing the required modules import glob import pandas as pd # specifying the path to csv files path = "csvfoldergfg" # csv files in the path files = glob.glob(path + "/*.csv") # defining an empty list to store # content data_frame = pd.DataFrame() content = [] # checking all the csv files in the # specified path for filename in files: # reading content of csv file # content.append(filename) df = pd.read_csv(filename, index_col=None) content.append(df) # converting content to data frame data_frame = pd.concat(content) print(data_frame)
Producción:
Método 2: Usando el módulo OS
- Inicialmente se especifica la ruta del directorio de origen, en este caso, la carpeta “csvfoldergfg” utilizando la variable de string dir_name.
dir_name = "csvfoldergfg"
- Para localizar todos los archivos, cuyos nombres pueden ser desconocidos, se invoca el módulo os y se llama a su método listdir() . Se proporciona con la ruta usando os.listdir(ruta). Esto devuelve la lista de todos los archivos ubicados dentro de la ruta.
os.listdir(dir_name)
- Luego se realiza una iteración sobre estos archivos usando el bucle for y el contenido se lee en un marco de datos, usando el método read_csv() de la biblioteca pandas. La información obtenida con este método puede manipularse.
read_csv(file_contents)
El siguiente código se ejecuta en la máquina local:
Python3
# importing the required packaged # in python import pandas as pd import os dir_name = "csvfoldergfg" # specifying an empty list for content content = [] for file in os.listdir(dir_name): # reading content into data frame df = pd.read_csv(file) df_list.append(df) final_content = df.append(df for df in df_list) print(final_content)
Producción:
Publicación traducida automáticamente
Artículo escrito por mallikagupta90 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA