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.
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.
Voici les étapes complètes pour fusionner deux fichiers CSV par colonnes spécifiques en Python à l'aide de 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
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')
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')
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')
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)
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.
Dans cet exemple, nous utiliserons la fonction merge() de Pandas pour fusionner deux fichiers CSV en fonction de colonnes spécifiques.
CSV Files
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 |
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)
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
在本例中,我们将使用 Pandas 的 join() 方法根据特定列合并两个 CSV 文件。
CSV Files
假设我们有两个 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')
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
使用 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!