Pandas 여정을 진행하면서 기본을 넘어 데이터 조작 기술에 정교함을 더하는 몇 가지 강력한 기술을 살펴보겠습니다.
1. DataFrame 병합 및 연결
여러 소스의 데이터를 결합하는 기술을 자세히 살펴보세요. DataFrame 병합과 연결의 차이점을 이해하고 다양한 유형의 조인을 처리하는 방법을 알아보세요.
# Concatenate DataFrames vertically
result = pd.concat([df1, df2])
# Merge DataFrames based on a common column
merged_df = pd.merge(left_df, right_df, on='common_column', how='inner')
- 설명
- 연결:
pd.concat()
은 DataFrame을 수직으로 쌓는 데 사용됩니다. 동일한 열을 가진 데이터 세트가 있고 행 단위로 결합하려는 경우에 유용합니다. - 병합:
pd.merge()
는 공통 열(column)을 기준으로 DataFrame을 결합하는 데 사용됩니다. SQL 조인과 유사하며 데이터 세트와 관련 정보를 결합하려는 경우에 유용합니다.
- 연결:
- 사용 사례
- 연결: 여러 달 또는 여러 해의 데이터를 동일한 열로 결합합니다.
- 병합: 공통 식별자를 가진 데이터 세트 통합(예: 고객 ID를 기반으로 판매 데이터와 고객 정보 병합)
2. 피벗(Pivot) 테이블로 데이터 재구성
피벗 테이블을 사용하여 더 나은 분석을 위해 데이터 재구성하는 데 능숙해집니다. DataFrame을 피벗 형태로 변환하여 정보를 요약하여 더 나은 인사이트를 얻을 수 있습니다:
# Create a pivot table
pivot_table = df.pivot_table(index='Category', columns='Month', values='Value', aggfunc='sum')
- 설명
df.pivot_table()
은 데이터를 재구성하여 요약 테이블을 생성합니다. 인덱스, 열, 값 및 집계 함수를 지정합니다.- 이 예에서는 합계를 사용하여 각 'Category'와 'Month' 조합에 대한 'Value' 열을 요약합니다.
- 사용 사례
- 제품 카테고리 및 월별로 분류된 판매 데이터를 분석하여 추세를 파악합니다.
3. 범주형 데이터 처리
범주형 데이터를 효율적으로 관리하여 분석을 향상합니다. 원-핫(one-hot) 인코딩 및 범주형 데이터 유형 변환과 같은 기술을 배워보세요.
# Convert a column to categorical type
df['Category'] = pd.Categorical(df['Category'])
# Perform one-hot encoding
df_encoded = pd.get_dummies(df, columns=['Category'])
- 설명
- 열을 범주형 유형으로 변환(
pd.Categorical()
)하면 고유 값이 제한된 열의 메모리 사용량이 최적화할 수 있습니다. - 원-핫(one-hot) 인코딩(
pd.get_dummies()
)은 범주형 변수를 이진 열로 변환하는 데 사용됩니다. 각 카테고리는 1과 0이 포함된 고유한 열을 갖게 됩니다.
- 열을 범주형 유형으로 변환(
- 사용 사례
- '성별(Gender)' 또는 '국가(Country)'와 같은 범주형 변수를 머신 러닝 알고리즘에 적합한 형식으로 변환합니다.
4. 시간 효율적인 문자열 작업
문자열 조작을 위한 Pandas의 다양한 기능을 살펴보세요. 문자열 작업을 효율적으로 적용하여 텍스트 데이터를 정리하고 변환하는 방법을 배워보세요.
# Convert text to lowercase
df['Text_Column'] = df['Text_Column'].str.lower()
# Extract information using regular expressions
df['Extracted_Info'] = df['Text_Column'].str.extract(r'(\d+)')
- 설명
str.lower()
는 열의 모든 텍스트를 소문자로 변환하여 일관성을 유지합니다.str.extract()
는 정규식을 사용하여 텍스트에서 특정 정보를 추출합니다.
- 사용 사례
- 비교하기 쉽도록 모든 텍스트를 소문자로 만들어 텍스트 데이터를 표준화합니다.
- 제품 설명에서 제품 ID를 추출하는 등 텍스트 열에서 숫자 정보를 추출합니다.
5. 날짜/시간 데이터 처리
기본적인 날짜/시간 작업을 넘어 고급 기술을 살펴보세요. 특정 구성 요소를 추출하고, 시차를 계산하고, 표준 시간대로 작업하는 방법을 배워보세요.
# Extract month and year from a datetime column
df['Month'] = df['Date'].dt.month
df['Year'] = df['Date'].dt.year
- 설명
dt.month
및dt.year
는 각각 월과 연도를 추출하는 날짜/시간 접근자(dt)의 속성입니다.
- 사용 사례
- 월별 또는 연도별 추세 분석과 같은 더 나은 시간 기반 분석을 위해 날짜/시간 데이터를 구성 요소로 세분화합니다.
6. 메모리 최적화
DataFrame의 메모리 사용량을 최적화하여 보다 효율적으로 처리하세요. 데이터 무결성을 손상시키지 않고 메모리 사용량을 줄이는 방법을 알아보세요.
# 숫자 열을 더 작은 데이터 유형으로 다운캐스트(Downcast)하기
df = df.apply(pd.to_numeric, downcast='integer')
- 설명
pd.to_numeric()
은 열을 숫자 유형으로 변환합니다.downcast='integer'
는 데이터에 맞는 가장 작은 정수 유형을 선택하여 메모리 사용량을 더욱 최적화합니다.
- 사용 사례
- 대규모 데이터 세트의 메모리 사용을 최적화하며, 특히 메모리에 않을 수 있는 데이터 세트로 작업할 때 유용합니다.
결론
이러한 고급 Pandas 기술은 데이터 조작 기술을 향상시켜 복잡한 시나리오에 대한 솔루션을 제공합니다. 주요 내용은 다음과 같습니다.
- 포괄적인 데이터 통합을 위해 DataFrame을 병합하고 연결합니다.
- 데이터 재구성을 위해 피벗 테이블의 기능을 활용합니다.
- 범주형 데이터를 효율적으로 처리하고 원-핫(one-hot) 인코딩을 수행합니다.
- 시간 효율적인 문자열 및 날짜/시간 작업을 마스터합니다.
- 대규모 데이터 세트의 메모리 사용량을 최적화합니다.
이러한 고급 기술을 적용하면 다양한 데이터 시나리오에서 Pandas를 정확하게 사용할 수 있습니다.
'Language > Python' 카테고리의 다른 글
초보자를 위한 Pandas 소개 (76) | 2024.01.27 |
---|---|
[Python] OpenCV Sharpening (0) | 2022.11.06 |
[Python] Python 기초(2) (0) | 2022.10.09 |
[Python] Python 기초(1) (0) | 2022.10.09 |
[Python] 시각화 기초(이미지) (0) | 2022.09.06 |
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!