Comment combiner plusieurs fichiers CSV avec 8 lignes de code

Pourquoi en avez-vous besoin?

Le copier-coller manuel est parfait si vous n'avez pas trop de fichiers avec lesquels travailler.

Mais imaginez si vous avez plus de 100 fichiers à concaténer - êtes-vous prêt à le faire manuellement? Faire cela de manière répétitive est fastidieux et sujet aux erreurs.

Si tous les fichiers ont la même structure de table (mêmes en-têtes et nombre de colonnes), laissez ce petit script Python faire le travail.

Étape 1: Importez les packages et définissez le répertoire de travail

Remplacez «/ mydir» par le répertoire de travail souhaité.

import os import glob import pandas as pd os.chdir("/mydir")

Étape 2: Utilisez glob pour correspondre au modèle 'csv'

Faites correspondre le modèle ('csv') et enregistrez la liste des noms de fichiers dans la variable 'all_filenames'. Vous pouvez consulter ce lien pour en savoir plus sur la correspondance d'expressions régulières.

extension = 'csv' all_filenames = [i for i in glob.glob('*.{}'.format(extension))]

Étape 3: Combinez tous les fichiers de la liste et exportez au format CSV

Utilisez pandas pour concaténer tous les fichiers de la liste et les exporter au format CSV. Le fichier de sortie est nommé «Combiné_csv.csv» situé dans votre répertoire de travail.

#combine all files in the list combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames ]) #export to csv combined_csv.to_csv( "combined_csv.csv", index=False, encoding="utf-8-sig")

encoding = 'utf-8-sig' est ajouté pour résoudre le problème lors de l'exportation de langues "non anglaises".

Et… c'est fait!

Cet article a été inspiré par mon problème quotidien réel, et la structure de codage est issue d'une discussion sur le stackoverflow. Le script terminé pour ce guide est documenté sur GitHub.

Merci pour la lecture. Essayez-le, amusez-vous et faites-moi part de vos commentaires!

Si vous aimez ce que j'ai fait, pensez à me suivre sur GitHub, Medium et Twitter. Assurez-vous de le mettre en vedette sur GitHub: P