¿Cómo fusionar muchos archivos TSV por clave común usando Python Pandas?

Para el análisis de datos, lo más importante son los datos y debemos prepararlos antes de poder usarlos para el análisis. A veces, los datos requeridos pueden estar dispersos en varios archivos y necesitamos fusionarlos. En este artículo, vamos a fusionar varios archivos TSV (Valores separados por tabulaciones) con una clave común. Esto puede ser posible utilizando el método de combinación de la biblioteca Python de pandas . Este método nos permite combinar archivos usando una clave común.

Acercarse:

  • Importar biblioteca de pandas
  • Luego lea los primeros dos archivos tsv y combínelos usando la función pd.merge() configurando el parámetro ‘on’ en la columna común presente en ambos archivos. Luego almacene el resultado en un nuevo marco de datos llamado ‘Output_df’.
  • Almacene los archivos restantes en una lista.
  • Ejecute un ciclo que iterará sobre estos nombres de archivo. Lea estos archivos uno por uno y combínelos con el marco de datos ‘Output_df’
  • Guarde ‘Output_df’ en el archivo tsv

Ejemplo 1:

En este ejemplo, fusionaremos archivos tsv mediante una unión interna. Hemos tomado cuatro archivos tsv para este ejemplo de la siguiente manera.

Archivo utilizado: Customer.tsv , Account.tsv , Branch.tsv , Loan.tsv

Python3

# Import pandas library
import pandas as pd
 
# Read first two csv files with '\t' separator
tsv1 = pd.read_csv("Documents/Customer.tsv", sep='\t')
tsv2 = pd.read_csv("Documents/Account.tsv", sep='\t')
 
# store the result in Output_df dataframe.
# Here common column is 'ID' column
Output_df = pd.merge(tsv1, tsv2, on='ID',
                     how='inner')
 
# store remaining file names in list
tsv_files = ["Branch.tsv", "Loan.tsv"]
 
# One by one read tsv files and merge with
# 'Output_df' dataframe and again store
# the final result in Output_df
for i in tsv_files:
    path = "Documents/"+i
    tsv = pd.read_csv(path, sep='\t')
    Output_df = pd.merge(Output_df, tsv,
                         on='ID', how='inner')
 
# Now store the 'Output_df'
# in tsv file 'Output.tsv'
Output_df.to_csv("Documents/Output.tsv",
                 sep="\t", header=True,
                 index=False)

Producción:

Salida.tsv

Ejemplo 2:

En este ejemplo, fusionaremos archivos tsv mediante una combinación externa. Hemos tomado cuatro archivos tsv para este ejemplo de la siguiente manera.

Archivo utilizado: Course.tsv , Teacher.tsv , Credits.tsv , Marks.tsv

Python3

# Import pandas library
import pandas as pd
 
# Read first two csv files with '\t' separator
tsv3 = pd.read_csv("Documents/Course.tsv", sep='\t')
tsv4 = pd.read_csv("Documents/Teacher.tsv", sep='\t')
 
# store the result in Output_df dataframe.
# Here common column is 'Course_ID' column
Output_df2 = pd.merge(tsv3, tsv4, on='Course_ID', how='outer')
 
# store remaining file names in list
tsv_files = ["Credits.tsv", "Marks.tsv"]
 
# One by one read tsv files and merge with
# 'Output_df2' dataframe and again store
# the final result in 'Output_df2'
for i in tsv_files:
    path = "Documents/"+i
    tsv = pd.read_csv(path, sep='\t')
    Output_df2 = pd.merge(Output_df2, tsv,
                          on='Course_ID', how='outer')
 
 
# Now store the 'Output_df2' in tsv file 'Output_outer.tsv'
# Here we replacing nan values with NA
Output_df2.to_csv("Documents/Output_outer.tsv", sep="\t",
                  header=True, index=False, na_rep="NA")

Producción:

Publicación traducida automáticamente

Artículo escrito por patildhanu4111999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *