CSV(쉼표로 구분된 값) 파일은 간단한 형식으로 데이터를 저장하고 교환하는 데 널리 사용됩니다. 많은 데이터 처리 작업에서는 특정 열을 기반으로 두 개 이상의 CSV 파일을 병합해야 합니다. 다행스럽게도 이는 Python의 Pandas 라이브러리를 사용하여 쉽게 달성할 수 있습니다.
이 기사에서는 Python에서 Pandas를 사용하여 특정 열별로 두 개의 CSV 파일을 병합하는 방법을 알아봅니다.
Pandas는 Python 메시지 제어 및 검사를 위한 오픈 소스 라이브러리입니다. 이는 구조화된 데이터(예: 표 형식, 시계열, 다차원 데이터) 및 고성능 데이터 구조 작업을 위한 도구를 제공합니다. Pandas는 금융, 데이터 과학, 기계 학습 및 데이터 조작이 필요한 기타 분야에서 널리 사용됩니다.
Pandas 라이브러리를 사용하여 Python의 특정 열별로 두 개의 CSV 파일을 병합하는 전체 단계는 다음과 같습니다. -
두 개의 CSV 파일을 병합하는 첫 번째 단계는 Pandas 라이브러리를 가져오는 것입니다. Pandas는 강력한 Python 데이터 분석 라이브러리입니다. 대규모 데이터 세트의 효율적인 저장 및 조작을 위한 데이터 구조를 제공합니다. Pandas를 사용하려면 먼저 Python 프로그램으로 가져와야 합니다. 다음 명령을 사용하여 이 작업을 수행할 수 있습니다 -
으아악다음 단계는 병합하려는 두 개의 CSV 파일을 읽는 것입니다. Pandas의 read_csv() 함수를 사용하여 CSV 파일을 Pandas DataFrame으로 읽을 수 있습니다. read_csv() 함수에 대한 인수로 CSV 파일의 파일 경로나 URL을 제공해야 합니다. 예를 들어 -
으아악CSV 파일을 Pandas DataFrames로 읽은 후 이제 merge() 함수를 사용하여 특정 열을 기준으로 파일을 병합할 차례입니다. merge() 함수는 두 개의 DataFrame을 입력으로 사용하고 공통 열을 기반으로 이를 병합합니다. 이것이 기본 구문입니다 -
으아악이 예에서 merged_df는 df1과 df2의 병합된 데이터를 포함하는 새로운 DataFrame입니다. on 매개변수는 두 DataFrame을 병합하는 공통 열의 이름을 지정합니다.
예를 들어 sales.csv와 customer.csv라는 두 개의 CSV 파일이 있다고 가정해 보겠습니다. 두 파일 모두 CustomerID라는 열을 포함합니다. CustomerID 열을 기반으로 두 파일을 병합하려고 합니다. 우리는 할 수 있어요 -
으아악특정 열을 기준으로 두 개의 CSV 파일을 병합할 때 병합된 DataFrame에 누락된 값이 있을 수 있습니다. 이러한 누락된 값은 CSV 파일 중 하나의 해당 열에 일치하는 값이 없는 경우 발생할 수 있습니다.
누락된 값을 처리하기 위해 Pandas의 fillna() 함수를 사용하여 이를 기본값 또는 계산된 값으로 바꿀 수 있습니다. 예를 들어 다음 코드를 사용하여 누락된 값을 "Unknown" 문자열로 바꿀 수 있습니다. -
으아악이 예에서는 fillna() 함수를 사용하여 병합된 DataFrame의 누락된 값을 "Unknown" 문자열로 바꿉니다. 또한 inplace 매개변수를 True로 지정했는데, 이는 새 DataFrame을 생성하는 대신 원본 DataFrame이 수정된다는 의미입니다.
이 예에서는 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
在本例中,我们将使用 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!