>백엔드 개발 >파이썬 튜토리얼 >Python에서 Pandas를 사용하여 특정 열로 두 개의 CSV 파일을 병합하는 방법은 무엇입니까?

Python에서 Pandas를 사용하여 특정 열로 두 개의 CSV 파일을 병합하는 방법은 무엇입니까?

PHPz
PHPz앞으로
2023-09-08 14:01:021627검색

Python에서 Pandas를 사용하여 특정 열로 두 개의 CSV 파일을 병합하는 방법은 무엇입니까?

CSV(쉼표로 구분된 값) 파일은 간단한 형식으로 데이터를 저장하고 교환하는 데 널리 사용됩니다. 많은 데이터 처리 작업에서는 특정 열을 기반으로 두 개 이상의 CSV 파일을 병합해야 합니다. 다행스럽게도 이는 Python의 Pandas 라이브러리를 사용하여 쉽게 달성할 수 있습니다.

이 기사에서는 Python에서 Pandas를 사용하여 특정 열별로 두 개의 CSV 파일을 병합하는 방법을 알아봅니다.

Pandas 라이브러리란 무엇인가요?

Pandas는 Python 메시지 제어 및 검사를 위한 오픈 소스 라이브러리입니다. 이는 구조화된 데이터(예: 표 형식, 시계열, 다차원 데이터) 및 고성능 데이터 구조 작업을 위한 도구를 제공합니다. Pandas는 금융, 데이터 과학, 기계 학습 및 데이터 조작이 필요한 기타 분야에서 널리 사용됩니다.

Python에서 특정 열을 기준으로 두 개의 CSV 파일을 병합하는 단계

Pandas 라이브러리를 사용하여 Python의 특정 열별로 두 개의 CSV 파일을 병합하는 전체 단계는 다음과 같습니다. -

1단계: Pandas 라이브러리 가져오기

두 개의 CSV 파일을 병합하는 첫 번째 단계는 Pandas 라이브러리를 가져오는 것입니다. Pandas는 강력한 Python 데이터 분석 라이브러리입니다. 대규모 데이터 세트의 효율적인 저장 및 조작을 위한 데이터 구조를 제공합니다. Pandas를 사용하려면 먼저 Python 프로그램으로 가져와야 합니다. 다음 명령을 사용하여 이 작업을 수행할 수 있습니다 -

으아악

2단계: CSV 파일 읽기

다음 단계는 병합하려는 두 개의 CSV 파일을 읽는 것입니다. Pandas의 read_csv() 함수를 사용하여 CSV 파일을 Pandas DataFrame으로 읽을 수 있습니다. read_csv() 함수에 대한 인수로 CSV 파일의 파일 경로나 URL을 제공해야 합니다. 예를 들어 -

으아악

3단계: CSV 파일 병합

CSV 파일을 Pandas DataFrames로 읽은 후 이제 merge() 함수를 사용하여 특정 열을 기준으로 파일을 병합할 차례입니다. merge() 함수는 두 개의 DataFrame을 입력으로 사용하고 공통 열을 기반으로 이를 병합합니다. 이것이 기본 구문입니다 -

으아악

이 예에서 merged_df는 df1과 df2의 병합된 데이터를 포함하는 새로운 DataFrame입니다. on 매개변수는 두 DataFrame을 병합하는 공통 열의 이름을 지정합니다.

예를 들어 sales.csv와 customer.csv라는 두 개의 CSV 파일이 있다고 가정해 보겠습니다. 두 파일 모두 CustomerID라는 열을 포함합니다. CustomerID 열을 기반으로 두 파일을 병합하려고 합니다. 우리는 할 수 있어요 -

으아악

4단계: 누락된 값 처리(있는 경우)

특정 열을 기준으로 두 개의 CSV 파일을 병합할 때 병합된 DataFrame에 누락된 값이 있을 수 있습니다. 이러한 누락된 값은 CSV 파일 중 하나의 해당 열에 일치하는 값이 없는 경우 발생할 수 있습니다.

누락된 값을 처리하기 위해 Pandas의 fillna() 함수를 사용하여 이를 기본값 또는 계산된 값으로 바꿀 수 있습니다. 예를 들어 다음 코드를 사용하여 누락된 값을 "Unknown" 문자열로 바꿀 수 있습니다. -

으아악

이 예에서는 fillna() 함수를 사용하여 병합된 DataFrame의 누락된 값을 "Unknown" 문자열로 바꿉니다. 또한 inplace 매개변수를 True로 지정했는데, 이는 새 DataFrame을 생성하는 대신 원본 DataFrame이 수정된다는 의미입니다.

예제 1: Merge() 함수 사용

이 예에서는 Pandas의 merge() 함수를 사용하여 특정 열을 기반으로 두 개의 CSV 파일을 병합합니다.

으아악

employee.csv와 Departments.csv라는 두 개의 CSV 파일이 있다고 가정합니다. Employees.csv 파일에는 다음 데이터가 포함되어 있습니다 -

사원ID 이름 부서 ID 급여
1 1 50000
2 사라 2 60000
3 데이비드 1 55000
4 알렉스 3 65000
5 에밀리 2 55000

departments.csv 파일에는 다음 데이터가 포함되어 있습니다 -

부서 ID 부서 이름
1 IT
2 판매
3 마케팅
4 인적자원

示例

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 文件。

위 내용은 Python에서 Pandas를 사용하여 특정 열로 두 개의 CSV 파일을 병합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제