morijwana
수로그
morijwana
전체 방문자
오늘
어제
  • 분류 전체보기
    • 강의노트
    • Machine Learning
      • Pandas
      • NLP
    • Computer Science
      • Linux
      • TIL
    • Development
      • React
      • Swift
      • Javascript
    • 스터디 기록
      • Clean Code
      • 구글 BERT의 정석
      • 개발도서
      • 기타
    • Problem Solving
      • Baekjoon
      • ICPC Sinchon
    • 끄적
      • 끄적끄적
      • 요리왕

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ML
  • word2vec
  • 데이터사이언스
  • Bert
  • gdsc
  • 백준
  • 개발도서
  • cs224n
  • 프로그래밍언어론
  • GDSC Sookmyung
  • 자연어처리
  • 구글BERT의정석
  • Python
  • Pandas
  • nlp
  • 프레임워크없는프론트엔드개발
  • Solution Challenge
  • 민트하임스터디
  • 구부정스터디
  • 회고

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
morijwana
Machine Learning/Pandas

[kaggle courses] Pandas - Summary Functions and Maps

[kaggle courses] Pandas - Summary Functions and Maps
Machine Learning/Pandas

[kaggle courses] Pandas - Summary Functions and Maps

2021. 10. 15. 19:26

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

 

0. 데이터의 개요 알아보기

Pandas는 데이터를 재구조화하여 보여주는 간단한 개요 함수들을 제공한다. describe() 메서드같은 경우는 주어진 열에 대해 높은 수준의 정보를 제공한다. describe()는 데이터의 타입마다 각기 다른 식의 개요를 보여준다. 여기서 사용하는 예시 DataFrame인 reviews는 아래와 같다.

reviews.points.describe()
count    129971.000000
mean         88.447138
             ...      
75%          91.000000
max         100.000000
Name: points, Length: 8, dtype: float64

위의 결과는 데이터 타입이 numerical인 경우이며, 아래는 데이터 타입이 string인 경우의 결과다.

reviews.taster_name.describe()
count         103727
unique            19
top       Roger Voss
freq           25514
Name: taster_name, dtype: object

describe()로 모든 개요 정보를 뭉텅이로 얻을 수도 있지만, 아래의 예제처럼 DataFrame이나 Series에서 특정한 통계값만 얻을 수도 있다.

reviews.points.mean()  # 평균
reviews.points.unique()  # 고유값들의 리스트
reviews.points.value_counts()  # 고유값들의 출현 빈도

 

 

1. 데이터를 매핑하는 방법

map은 수학에서 채용한 용어로, 한 집합에서 다른 집합으로 "매핑"시키는 함수를 가리킨다. 데이터 사이언스에서 기존 데이터를 다른 방식으로 표현하고 싶을 때, 지금과 다른 포맷으로 변환해야 할 때 map을 사용한다.
매핑 방법에는 2가지가 있으며, 첫번째 방법은 map() 함수를 사용하는 방법이다. map()은 단일 Series에 사용할 수 있으며, 아래는 map()을 points 속성(reviews.points)에 사용하여 points 속성을 'points 값과 평균의 오차'로 갱신하는 예시다.

reviews_points_mean = reviews.points.mean()
reviews.points.map(lambda p: p - review_points_mean)
0        -1.447138
1        -1.447138
            ...   
129969    1.552862
129970    1.552862
Name: points, Length: 129971, dtype: float64

단일 Series의 값만 바꾸는 map()과는 다르게, apply()는 사용자 정의 메서드를 각 행마다 적용하여 DataFrame 전체를 변형할 수 있다.

def remain_points(row):
    row.points -= review_points_mean
    return row

reviews.apply(remean_points, axis='columns')

호출 시 axis='index' 값을 주면 행마다 적용하는 대신 열마다 적용하게 된다.

 

 

2. Pandas 내장 매핑 연산자를 사용한 매핑 방법

Pandas는 다양한 매핑 연산자를 내장 기능으로 제공한다. 아래는 내장 매핑 연산자를 이용해 points 속성을 재정의하는 더 빠른 방법이다.

review_points_mean = reviews.points.mean()
reviews.points - review_points_mean
0        -1.447138
1        -1.447138
            ...   
129969    1.552862
129970    1.552862
Name: points, Length: 129971, dtype: float64

Pandas는 길이가 같은 두 Series 사이의 매핑 연산도 가능하다.

reviews.country + " - " + reviews.region_1
0            Italy - Etna
1                     NaN
               ...       
129969    France - Alsace
129970    France - Alsace
Length: 129971, dtype: object

이런 식의 연산은 Pandas에 내장된 속도 향상을 위한 매커니즘을 따르기 때문에 map(), apply()보다 빠르다. 다른 기본 파이썬 연산자(<, >, == 등등)도 같은 방식으로 작동한다.
하지만 얘네들은 map(), apply()보다 유연하게 새용하기는 힘드므로, 상황에 맞춰 필요한 연산자나 메서드를 찾아 쓰도록 하자.

저작자표시 (새창열림)

'Machine Learning > Pandas' 카테고리의 다른 글

[kaggle courses] Pandas - Renaming and Combining  (0) 2021.10.19
[kaggle courses] Pandas - Data Types and Missing Values  (0) 2021.10.18
[kaggle courses] Pandas - Grouping and Sorting  (0) 2021.10.16
[kaggle courses] Pandas - Indexing, Selecting & Assigning (iloc, loc)  (0) 2021.10.15
[kaggle courses] Pandas - Creating, Reading and Writing  (0) 2021.10.14
  •  
  • 0. 데이터의 개요 알아보기
  •  
  •  
  • 1. 데이터를 매핑하는 방법
  •  
  •  
  • 2. Pandas 내장 매핑 연산자를 사용한 매핑 방법
'Machine Learning/Pandas' 카테고리의 다른 글
  • [kaggle courses] Pandas - Data Types and Missing Values
  • [kaggle courses] Pandas - Grouping and Sorting
  • [kaggle courses] Pandas - Indexing, Selecting & Assigning (iloc, loc)
  • [kaggle courses] Pandas - Creating, Reading and Writing
morijwana
morijwana
행복한 휴학생의 devlog

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.