본문 바로가기
판다스(Pandas)

(3) 판다스(Pandas)란? - Summary Functions and Maps [Hellfer]

by Hellfer 2024. 7. 24.
728x90

https://www.kaggle.com/code/residentmario/summary-functions-and-maps

 

Summary Functions and Maps

Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources

www.kaggle.com

 

위의 글을 참고하여 작성하였습니다.

 

지난 튜토리얼에서 DataFrame이나 Series에서 관련 데이터를 선택하는 방법을 배웠습니다.

 

데이터 표현에서 올바른 데이터를 추출하는 것은 작업을 완료하는 데 매우 중요합니다.

 


 

앞서 사용했었던 데이터프레임입니다.

 

 

reviews

 

 


 

판다스(Pandas)는 데이터를 유용한 방식으로 재구조화하는 여러 간단한 "요약 함수"(Summary Functions)를 제공합니다.

 

예를 들어, describe() 함수를 알아보겠습니다.

 

reviews.points.describe()

 

 

describe() 함수는 DataFrame의 수치 데이터를 요약하여,  각 열의 평균, 표준 편차, 최솟값, 25% 백분위수, 중앙값(50%), 

75% 백분위수 및 최댓값을 보여줍니다.

 

이와 같은 정보는 숫자형 데이터에 대해서만 사용할 수 있습니다.

 

문자열 데이터에 대해 describe() 함수를 사용하면 주어진 열의 속성에 대한 요약을 생성합니다.

 

이는 타입 인식 기능을 가지고 있어, 입력 데이터 타입에 따라 출력이 달라집니다.

 

 

열에 있는 총 개수, 고유한 값의 개수, 최빈값, 최빈값의 빈도수를 보여줍니다.

 


 

DataFrame 또는 Series의 열에 대한 단순 요약 통계를 얻으려는 경우는 mean() 함수를 사용할 수 있습니다.

 

특정 와인의 평가가 얼마나 높은지 알 수 있는 지표로서, 'points' 열의 평균값을 계산해 줍니다.

 

reviews.points.mean()

 

 


 

고유한 목록 값을 보고 싶다면 unique() 함수를 사용할 수 있습니다.

 

이 함수는 주어진 열에서 중복되지 않는 고유한 값을 반환합니다.

 

reviews.taster_name.unique()

 

 


 

데이터셋에서 고유한 값의 목록과 각 값이 얼마나 자주 나타나는지 확인하려면 value_counts() 함수를 사용할 수 있습니다.

 

각 고유 값의 빈도수를 계산하여 반환합니다.

 

reviews.taster_name.value_counts()

 

 


 

맵(Map)은 수학에서 차용된 용어로, 한 집합의 값을 받아 다른 집합의 값으로 "매핑"(Mapping)하는 함수입니다.

 

기존 데이터를 새로운 표현으로 변환하거나, 현재의 데이터 형식을 원하는 형식으로 변환해야 하는 경우가 자주 발생합니다.

 

이러한 작업을 처리하는 데 유용하며 자주 사용하게 될 두 가지 매핑(Mapping) 방법이 있습니다.

 

1. map()

 

와인의 평균 점수를 재평균화하는 예시입니다.

 

map() 함수를 사용하여 각 점수에서 평균 점수를 빼는 작업을 수행합니다.

 

이를 통해 각 점수가 평균 점수로부터 얼마나 떨어져 있는지를 계산합니다.

 

# 평균 점수 계산
reviews_points_mean = reviews.points.mean()
# 점수를 재평균화하여 새롭게 생성
reviews.points.map(lambda p: p - reviews_points_mean)

 

 

2. apply()

 

각 행에 대해 사용자 정의 메서드를 호출하여 전체 데이터프레임을 변환할 때 사용합니다.

 

def remean_points(row):
    row_points = row.points - review_points_mean
    return row
    
reviews.apply(remean_points, axis='columns')

 

 

데이터프레임의 각 행에 대해 remean_points 함수를 적용하여 'points' 값을 재평균화합니다.

 

 

- map()과 apply() 메서드는 새롭게 변환된 시리즈나 데이터프레임을 반환하며, 원본 데이터는 수정되지 않습니다.

 

reviews.head(1)

 

 


 

판다스(Pandas)에서는 길이가 동일한 시리즈 간의 연산을 이해하고 처리할 수 있습니다.

 

예를 들어, 데이터셋에서 국가(country) 정보와 지역(region) 정보를 결합하는 방법을 알아보겠습니다.

 

reviews.country + " - " + reviews.region_1

 

 

연산자(+, -, *, /)는 map()이나 apply() 보다 빠르게 작동합니다.

 

반면에 map()과 apply()는 사용자 정의 함수나 복잡한 논리 조건을 적용할 때 유용합니다.

728x90