Maison > développement back-end > Tutoriel Python > Comment fusionner deux fichiers CSV par colonnes spécifiques à l'aide de Pandas en Python ?

Comment fusionner deux fichiers CSV par colonnes spécifiques à l'aide de Pandas en Python ?

PHPz
Libérer: 2023-09-08 14:01:02
avant
1569 Les gens l'ont consulté

Comment fusionner deux fichiers CSV par colonnes spécifiques à laide de Pandas en Python ?

Les fichiers CSV (Comma Separated Values) sont largement utilisés pour stocker et échanger des données dans un format simple. Dans de nombreuses tâches de traitement de données, il est nécessaire de fusionner deux ou plusieurs fichiers CSV en fonction de colonnes spécifiques. Heureusement, cela peut être facilement réalisé en utilisant la bibliothèque Pandas en Python.

Dans cet article, nous apprendrons comment fusionner deux fichiers CSV par colonnes spécifiques à l'aide de Pandas en Python.

Qu'est-ce que la bibliothèque Pandas ?

Pandas est une bibliothèque open source pour le contrôle et l'inspection des messages Python. Il fournit des outils pour travailler avec des données structurées (telles que des données tabulaires, des séries chronologiques et multidimensionnelles) et des structures de données hautes performances. Pandas est largement utilisé dans la finance, la science des données, l'apprentissage automatique et d'autres domaines nécessitant une manipulation de données.

Étapes pour fusionner deux fichiers CSV par colonnes spécifiques en Python

Voici les étapes complètes pour fusionner deux fichiers CSV par colonnes spécifiques en Python à l'aide de la bibliothèque Pandas -

Étape 1 : Importer la bibliothèque Pandas

La première étape pour fusionner deux fichiers CSV consiste à importer la bibliothèque pandas. Pandas est une puissante bibliothèque d'analyse de données Python. Il fournit des structures de données pour un stockage et une manipulation efficaces de grands ensembles de données. Pour utiliser Pandas, nous devons d'abord l'importer dans un programme Python. Nous pouvons le faire en utilisant la commande suivante -

import pandas as pd
Copier après la connexion

Étape 2 : Lire le fichier CSV

Notre prochaine étape consiste à lire les deux fichiers CSV que nous souhaitons fusionner. Nous pouvons lire le fichier CSV dans un Pandas DataFrame en utilisant la fonction read_csv() de Pandas. Nous devons fournir le chemin du fichier ou l'URL du fichier CSV comme argument de la fonction read_csv(). Par exemple -

df1 = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')
Copier après la connexion

Étape 3 : Fusionner les fichiers CSV

Après avoir lu les fichiers CSV dans Pandas DataFrames, il est maintenant temps de les fusionner en fonction de colonnes spécifiques à l'aide de la fonction merge(). La fonction merge() prend deux DataFrames en entrée et les fusionne en fonction de colonnes communes. C'est la syntaxe de base -

merged_df = pd.merge(df1, df2, on='column_name')
Copier après la connexion

Dans cet exemple, merged_df est un nouveau DataFrame contenant les données fusionnées de df1 et df2. Le paramètre on spécifie le nom de la colonne commune qui fusionne les deux DataFrames.

Par exemple, supposons que nous ayons deux fichiers CSV sales.csv et customer.csv. Les deux fichiers contiennent une colonne nommée CustomerID. Nous souhaitons fusionner deux fichiers en fonction de la colonne CustomerID. Nous pouvons le faire -

sales = pd.read_csv('sales.csv')
customers = pd.read_csv('customers.csv')
merged_df = pd.merge(sales, customers, on='CustomerID')
Copier après la connexion

Étape 4 : Gérer les valeurs manquantes (le cas échéant)

Lors de la fusion de deux fichiers CSV basés sur des colonnes spécifiques, il peut y avoir des valeurs manquantes dans le DataFrame fusionné. Ces valeurs manquantes peuvent survenir s'il n'y a pas de valeur correspondante dans la colonne correspondante de l'un des fichiers CSV.

Pour gérer les valeurs manquantes, nous pouvons utiliser la fonction fillna() de Pandas pour les remplacer par des valeurs par défaut ou calculées. Par exemple, nous pouvons utiliser le code suivant pour remplacer les valeurs manquantes par la chaîne "Inconnu" -

merged_df.fillna('Unknown', inplace=True)
Copier après la connexion

Dans cet exemple, nous utilisons la fonction fillna() pour remplacer les valeurs manquantes dans le DataFrame fusionné par la chaîne "Unknown". Nous avons également spécifié le paramètre inplace sur True, ce qui signifie que le DataFrame d'origine sera modifié plutôt que de créer un nouveau DataFrame.

Exemple 1 : Utilisation de la fonction Merge()

Dans cet exemple, nous utiliserons la fonction merge() de Pandas pour fusionner deux fichiers CSV en fonction de colonnes spécifiques.

CSV Files
Copier après la connexion
Copier après la connexion

Supposons que nous ayons deux fichiers CSV : employés.csv et Départements.csv. Le fichier Employees.csv contient les données suivantes -

ID d'employé Nom ID du département Salaire
1 Jean 1 50000
2 Sarah 2 60000
3 David 1 55000
4 Alex 3 65000
5 Emily 2 55000
Le fichier

departments.csv contient les données suivantes -

ID du département Nom du département
1 IT
2 VENTE
3 Marketing
4 Ressources humaines

示例

import pandas as pd

# Load CSV Files
employees = pd.read_csv('employees.csv')
departments = pd.read_csv('departments.csv')

# Merge dataframes based on DepartmentID column
merged_df = pd.merge(employees, departments, on='DepartmentID')

# Print merged dataframe
print(merged_df.head())

# Save merged dataframe to a new CSV file
merged_df.to_csv('merged_employees_departments.csv', index=False)
Copier après la connexion

输出

   EmployeeID   Name  DepartmentID  Salary DepartmentName
0           1   John             1   50000             IT
1           3  David             1   55000             IT
2           2  Sarah             2   60000          Sales
3           5  Emily             2   55000          Sales
4           4   Alex             3   65000      Marketing
Copier après la connexion

示例 2:使用 Join() 函数

在本例中,我们将使用 Pandas 的 join() 方法根据特定列合并两个 CSV 文件。

CSV Files
Copier après la connexion
Copier après la connexion

假设我们有两个 CSV 文件:orders.csv 和customers.csv。 order.csv 文件包含以下数据 -

订单ID 客户ID 订单日期 总金额
1 1 2022-05-01 100.0
2 3 2022-05-02 150.0
3 2 2022-05-03 200.0
4 1 2022-05-04 75.0
5 4 2022-05-05 120.0

customers.csv 文件包含以下数据 -

客户ID 客户名称 电子邮件
1 约翰 john@example.com
2 莎拉 sarah@example.com
3 大卫 david@example.com
4 艾米丽 emily@example.com

示例

import pandas as pd

# Load CSV files
orders = pd.read_csv('orders.csv')
customers = pd.read_csv('customers.csv')

# Join dataframes based on CustomerID column
joined_df = orders.set_index('CustomerID').join(customers.set_index('CustomerID'))

# Print joined dataframe
print(joined_df.head())

# Save joined dataframe to a new CSV file
joined_df.to_csv('joined_orders_customers.csv')
Copier après la connexion

输出

            OrderID   OrderDate  TotalAmount CustomerName              Email
CustomerID                                                                  
1                 1  2022-05-01        100.0         John   john@example.com
1                 4  2022-05-04         75.0         John   john@example.com
2                 3  2022-05-03        200.0        Sarah  sarah@example.com
3                 2  2022-05-02        150.0        David  david@example.com
4                 5  2022-05-05        120.0        Emily  emily@example.com
Copier après la connexion

使用 Pandas 的 merge() 函数,我们根据本例中的“id”列合并了两个 CSV 文件。作为合并两个 CSV 文件的结果的 DataFrame 除了“name_x”、“email_x”、“name_y”和“email_y”列之外还包括“id”列。

请注意,“name_y”和“email_y”段的组合 DataFrame 中缺少值,这些值与第二个 CSV 记录中没有匹配质量的行相关。如上一步所示,Pandas fillna() 和 dropna() 函数可用于处理这些缺失值。

结论

基于特定列合并两个 CSV 文件是一项常见的数据处理任务,可以使用 Python 中的 Pandas 库轻松实现。在本文中,我们学习了如何使用 Pandas 的 merge() 函数合并两个 CSV 文件。我们还讨论了如何处理缺失值以及如何将合并的 DataFrame 保存到新的 CSV 文件。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal