Fusionner des fichiers CSV en Python
-
Combinez plusieurs fichiers CSV dans un seul
DataFrame
Pandas à l’aide de la fusion par noms -
Fusionner plusieurs fichiers CSV dans un seul
DataFrame
Pandas en fusionnant tous les champs - Conclusion
Lorsque vous travaillez avec un grand ensemble de données sous la forme de fichiers .csv dans Pandas DataFrame
, il est possible qu’un seul fichier ne contienne pas toutes les informations nécessaires à l’analyse des données. Dans ce cas, nous devons fusionner plusieurs fichiers dans un seul pandas DataFrame
. La bibliothèque Python pandas fournit diverses méthodes pour résoudre ce problème, telles que concat
, merge
, et join
.
Dans ce guide, nous allons apprendre deux méthodes différentes pour fusionner les multiples fichiers .csv en un seul DataFrame
Pandas à l’aide de différents exemples.
Combinez plusieurs fichiers CSV dans un seul DataFrame
Pandas à l’aide de la fusion par noms
Pour fusionner plusieurs fichiers .csv, nous importons d’abord la bibliothèque pandas et définissons les chemins d’accès aux fichiers. Ensuite, l’utilisation de la méthode pd.read_csv()
lit tous les fichiers CSV. Le pd.concat()
prend les fichiers CSV mappés comme argument, puis les fusionne par défaut le long de l’axe des lignes. L’argument ignore_index=True
est utilisé pour définir les valeurs d’index continues pour le DataFrame
nouvellement fusionné.
Voir l’exemple suivant, nous avons implémenté l’approche mentionnée ci-dessus en utilisant pandas python :
Exemple de code :
import pandas as pd
# set files path
sales1 = "C:\\Users\\DELL\\OneDrive\\Desktop\\salesdata1.csv"
sales2 = "C:\\Users\DELL\\OneDrive\\Desktop\\salesdata2.csv"
print("*** Merging multiple csv files into a single pandas dataframe ***")
# merge files
dataFrame = pd.concat(map(pd.read_csv, [sales1, sales2]), ignore_index=True)
print(dataFrame)
Production :
*** Merging multiple csv files into a single pandas dataframe ***
Product_Name Quantity Sale_Price
0 Acer laptop 3 500$
1 Dell Laptop 6 700$
2 Hp laptop 8 800$
3 Lenavo laptop 2 600$
4 Acer laptop 3 500$
5 Dell Laptop 6 700$
6 Hp laptop 8 800$
7 Lenavo laptop 2 600$
Fusionner plusieurs fichiers CSV dans un seul DataFrame
Pandas en fusionnant tous les champs
Pour fusionner tous les fichiers .csv dans un DataFrame
pandas, nous avons utilisé le module glob dans cette approche. Tout d’abord, nous avons dû importer toutes les bibliothèques. Après cela, nous définissons le chemin de tous les fichiers que nous devons fusionner.
Dans l’exemple suivant, le os.path.join()
prend le chemin du fichier comme premier argument et les composants du chemin ou les fichiers .csv à joindre comme deuxième argument. Ici, le salesdata*.csv
correspondra et renverra chaque fichier commençant par salesdata
dans le répertoire de base spécifié et se terminant par l’extension .csv. Le glob.glob(files_joined)
prend un argument des noms de fichiers fusionnés et renvoie une liste de tous les fichiers fusionnés.
Consultez l’exemple suivant pour fusionner tous les fichiers .csv à l’aide du module glob :
Exemple de code :
import pandas as pd
import glob
import os
# merging the files
files_joined = os.path.join(
"C:\\Users\\DELL\\OneDrive\\Desktop\\CSV_files", "salesdata*.csv"
)
# Return a list of all joined files
list_files = glob.glob(files_joined)
print("** Merging multiple csv files into a single pandas dataframe **")
# Merge files by joining all files
dataframe = pd.concat(map(pd.read_csv, list_files), ignore_index=True)
print(dataframe)
Production :
** Merging multiple csv files into a single pandas dataframe **
Product_Name Quantity Sale_Price
0 Acer laptop 3 500$
1 Dell Laptop 6 700$
2 Hp laptop 8 800$
3 Lenavo laptop 2 600$
4 Acer laptop 3 500$
5 Dell Laptop 6 700$
6 Hp laptop 8 800$
7 Lenavo laptop 2 600$
Conclusion
Nous avons introduit deux approches pour fusionner plusieurs fichiers CSV dans pandas python dans ce didacticiel. Nous avons vu comment nous pouvons lire les fichiers .csv et les fusionner en un seul DataFrame
Pandas en utilisant la méthode pd.concat()
. De plus, nous savons maintenant utiliser le module glob
dans le code python de Pandas.