CSV-Dateien (Comma Separated Values) werden häufig zum Speichern und Austauschen von Daten in einem einfachen Format verwendet. Bei vielen Datenverarbeitungsaufgaben besteht die Notwendigkeit, zwei oder mehr CSV-Dateien basierend auf bestimmten Spalten zusammenzuführen. Glücklicherweise kann dies mithilfe der Pandas-Bibliothek in Python leicht erreicht werden.
In diesem Artikel erfahren Sie, wie Sie mit Pandas in Python zwei CSV-Dateien nach bestimmten Spalten zusammenführen.
Pandas ist eine Open-Source-Bibliothek für die Kontrolle und Inspektion von Python-Nachrichten. Es bietet Werkzeuge für die Arbeit mit strukturierten Daten (z. B. Tabellen-, Zeitreihen- und mehrdimensionalen Daten) und Hochleistungsdatenstrukturen. Pandas wird häufig in den Bereichen Finanzen, Datenwissenschaft, maschinelles Lernen und anderen Bereichen eingesetzt, in denen Datenmanipulation erforderlich ist.
Hier sind die vollständigen Schritte zum Zusammenführen zweier CSV-Dateien nach bestimmten Spalten in Python mithilfe der Pandas-Bibliothek -
Der erste Schritt zum Zusammenführen zweier CSV-Dateien besteht darin, die Pandas-Bibliothek zu importieren. Pandas ist eine leistungsstarke Python-Datenanalysebibliothek. Es bietet Datenstrukturen für die effiziente Speicherung und Bearbeitung großer Datenmengen. Um Pandas verwenden zu können, müssen wir es zunächst in ein Python-Programm importieren. Wir können dies mit dem folgenden Befehl tun -
import pandas as pd
Unser nächster Schritt besteht darin, die beiden CSV-Dateien zu lesen, die wir zusammenführen möchten. Mit der Funktion read_csv() von Pandas können wir die CSV-Datei in einen Pandas-DataFrame einlesen. Wir müssen den Dateipfad oder die URL der CSV-Datei als Argument für die Funktion read_csv() angeben. Zum Beispiel -
df1 = pd.read_csv('file1.csv') df2 = pd.read_csv('file2.csv')
Nachdem Sie die CSV-Dateien in Pandas DataFrames eingelesen haben, ist es nun an der Zeit, sie basierend auf bestimmten Spalten mithilfe der Funktion merge() zusammenzuführen. Die Funktion merge() nimmt zwei DataFrames als Eingabe und führt sie basierend auf gemeinsamen Spalten zusammen. Dies ist die grundlegende Syntax -
merged_df = pd.merge(df1, df2, on='column_name')
In diesem Beispiel ist merged_df ein neuer DataFrame, der die zusammengeführten Daten von df1 und df2 enthält. Der on-Parameter gibt den Namen der gemeinsamen Spalte an, die die beiden DataFrames zusammenführt.
Angenommen, wir haben zwei CSV-Dateien „sales.csv“ und „customers.csv“. Beide Dateien enthalten eine Spalte namens CustomerID. Wir möchten zwei Dateien basierend auf der Spalte „CustomerID“ zusammenführen. Wir können das schaffen -
sales = pd.read_csv('sales.csv') customers = pd.read_csv('customers.csv') merged_df = pd.merge(sales, customers, on='CustomerID')
Beim Zusammenführen von zwei CSV-Dateien basierend auf bestimmten Spalten können im zusammengeführten DataFrame Werte fehlen. Diese fehlenden Werte können auftreten, wenn in der entsprechenden Spalte einer der CSV-Dateien kein passender Wert vorhanden ist.
Um mit fehlenden Werten umzugehen, können wir die Funktion fillna() von Pandas verwenden, um sie durch Standard- oder berechnete Werte zu ersetzen. Mit dem folgenden Code können wir beispielsweise fehlende Werte durch die Zeichenfolge „Unknown“ -
ersetzenmerged_df.fillna('Unknown', inplace=True)
In diesem Beispiel verwenden wir die Funktion fillna(), um die fehlenden Werte im zusammengeführten DataFrame durch die Zeichenfolge „Unknown“ zu ersetzen. Wir haben auch den Inplace-Parameter als True angegeben, was bedeutet, dass der ursprüngliche DataFrame geändert wird, anstatt einen neuen DataFrame zu erstellen.
In diesem Beispiel verwenden wir die Funktion merge() von Pandas, um zwei CSV-Dateien basierend auf bestimmten Spalten zusammenzuführen.
CSV Files
Angenommen, wir haben zwei CSV-Dateien: Mitarbeiter.csv und Abteilungen.csv. Die Datei „Employees.csv“ enthält die folgenden Daten -
Mitarbeiter-ID | Name | Abteilungs-ID | Gehalt |
---|---|---|---|
1 | John | 1 | 50000 |
2 | Sarah | 2 | 60000 |
3 | David | 1 | 55000 |
4 | Alex | 3 | 65000 |
5 | Emily | 2 | 55000 |
departments.csv enthält die folgenden Daten -
Abteilungs-ID | Abteilungsname |
---|---|
1 | IT |
2 | VERKAUF |
3 | Marketing |
4 | Personalwesen |
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 文件。
Das obige ist der detaillierte Inhalt vonWie füge ich mit Pandas in Python zwei CSV-Dateien nach bestimmten Spalten zusammen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!