Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich mit Pandas in Python zwei CSV-Dateien nach bestimmten Spalten zusammen?

Wie füge ich mit Pandas in Python zwei CSV-Dateien nach bestimmten Spalten zusammen?

PHPz
PHPznach vorne
2023-09-08 14:01:021545Durchsuche

Wie füge ich mit Pandas in Python zwei CSV-Dateien nach bestimmten Spalten zusammen?

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.

Was ist die Pandas-Bibliothek?

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.

Schritte zum Zusammenführen zweier CSV-Dateien nach bestimmten Spalten in Python

Hier sind die vollständigen Schritte zum Zusammenführen zweier CSV-Dateien nach bestimmten Spalten in Python mithilfe der Pandas-Bibliothek -

Schritt 1: Importieren Sie die 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

Schritt 2: Lesen Sie die CSV-Datei

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')

Schritt 3: CSV-Dateien zusammenführen

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')

Schritt 4: Behandeln Sie fehlende Werte (falls vorhanden)

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“ -

ersetzen
merged_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.

Beispiel 1: Verwendung der Funktion Merge()

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
Die Datei

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

示例 2:使用 Join() 函数

在本例中,我们将使用 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen