본문 바로가기
Develope/python

[PYHTON, 파이썬] Pandas 라이브러리를 이용한 데이터 프레임 처리, SettingWithCopyWarning, Missing Data (NaN) 처리, 병합 및 결합 방법

by 개발자도구 2024. 5. 21.
반응형

Python: Pandas 라이브러리를 이용한 데이터 프레임 처리

파이썬의 데이터 분석 라이브러리인 Pandas는 데이터 조작과 분석에 탁월한 기능을 제공합니다. 특히 데이터 프레임(DataFrame)은 Pandas의 핵심 클래스 중 하나로, 표 형식의 데이터를 처리하는 데 매우 유용합니다. 이번 블로그 글에서는 Pandas의 데이터 프레임을 사용하는 방법을 소개하고, 자주 발생하는 문제와 해결 방법을 다루겠습니다.

 


 

 

Pandas 설치 및 데이터 프레임 생성
먼저 Pandas를 설치해야 합니다. Pandas는 pip을 통해 쉽게 설치할 수 있습니다.

pip install pandas



데이터 프레임을 생성하는 방법은 여러 가지가 있습니다. 일반적으로는 리스트나 딕셔너리로부터 생성하거나 CSV 파일을 불러와 생성할 수 있습니다.

import pandas as pd

# 리스트로부터 데이터 프레임 생성
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)



CSV 파일로부터 데이터 프레임을 생성하는 예제는 다음과 같습니다.

df = pd.read_csv('data.csv')
print(df.head())



데이터 프레임의 기본 사용법

Pandas의 데이터 프레임을 사용하면 데이터 조작이 매우 간편해집니다. 아래는 데이터 선택, 필터링, 수정, 정렬 등의 기본적인 사용법입니다.

 

데이터 선택 및 필터링
데이터 프레임의 특정 열을 선택할 수 있습니다.

# 특정 열 선택
names = df['Name']
print(names)



조건에 따른 필터링도 가능합니다.

# 조건에 맞는 행 필터링
filtered_df = df[df['Age'] > 30]
print(filtered_df)



데이터 수정
데이터 프레임의 값을 수정할 수도 있습니다.

# 열 값 수정
df.loc[df['Name'] == 'Alice', 'Age'] = 26
print(df)



새로운 열을 추가할 수도 있습니다.

# 새로운 열 추가
df['Country'] = 'USA'
print(df)

 


데이터 정렬
데이터 프레임의 값을 기준으로 정렬할 수 있습니다.

# 'Age' 열을 기준으로 정렬
sorted_df = df.sort_values(by='Age')
print(sorted_df)

 


 


자주 발생하는 문제와 해결 방법

1. SettingWithCopyWarning:
이 경고는 데이터 프레임을 슬라이싱할 때 종종 발생합니다. 올바르게 데이터 프레임을 수정하는 방법을 사용하면 이 경고를 피할 수 있습니다.

# 경고가 발생하는 코드
filtered_df = df[df['Age'] > 30]
filtered_df['Age'] = 40

# 경고를 피하는 코드
df.loc[df['Age'] > 30, 'Age'] = 40
Missing Data (NaN) 처리:

 

 

2. Missing Data (NaN) 처리:

데이터 세트에는 종종 누락된 값이 포함됩니다. Pandas는 이러한 값을 처리하는 다양한 방법을 제공합니다.

# NaN 값을 특정 값으로 채우기
df.fillna(0, inplace=True)

# NaN 값을 가진 행 삭제
df.dropna(inplace=True)

 


3. 병합 및 결합:
여러 데이터 프레임을 병합하거나 결합해야 하는 경우가 많습니다. Pandas는 이를 위해 merge와 concat 함수를 제공합니다.

df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value1': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['A', 'B', 'D'], 'value2': [4, 5, 6]})

# 공통 열을 기준으로 병합
merged_df = pd.merge(df1, df2, on='key', how='inner')
print(merged_df)

# 데이터 프레임 결합
concatenated_df = pd.concat([df1, df2], axis=0)
print(concatenated_df)



결론

이번 글에서는 Pandas의 데이터 프레임을 사용하여 데이터를 조작하고 분석하는 기본적인 방법을 소개했습니다. Pandas는 매우 강력한 라이브러리로, 데이터 분석 작업을 크게 단순화할 수 있습니다. 더 많은 기능과 고급 사용법을 익히고자 한다면 Pandas 공식 문서를 참조하시기 바랍니다.

 

https://pandas.pydata.org/docs/

 

pandas documentation — pandas 2.2.2 documentation

API reference The reference guide contains a detailed description of the pandas API. The reference describes how the methods work and which parameters can be used. It assumes that you have an understanding of the key concepts.

pandas.pydata.org

 

 

 

반응형

댓글