오늘 할 일: 끝내주게 숨쉬기
article thumbnail
[pandas] style로 데꾸(데이터프레임 꾸미기)하는 방법

들어가며 오랜만에 파이썬을 사용하다가 유용해보이는 기능을 발견하여 공유하고자 합니다. 바로 pandas의 style 기능입니다. 데이터 분석을 하면 데이터프레임에 찍힌 숫자나 문자와 같은 값들을 보면서 무엇이 제일 크고 작은지, 관심있게 보려는 값이 어디있는지 찾아야하는 일이 생기죠. 이때 내가 원하는 값들이 쉽게 눈에 띄지 않은 경험을 한 번쯤은 해보셨을 것 같습니다. 행, 열이 많아지면 주의 깊게 봐야하는 값이 어디에 있는지 더욱 찾기 어려워지기도 하죠. 이런 일들을 해결하기 위해 데꾸, 데이터프레임 꾸미기를 활용할 수 있습니다. 판다스의 공식 문서를 보며 유용할 것 같은 일부 함수들을 가져와 소개 드립니다. 비어있는 값, nan 강조하기 import numpy as np import pandas a..

article thumbnail
[GeoPandas] GeoPandas를 이용한 좌표 데이터 다루기

최근 좌표를 포함하는 데이터를 전처리하면서 geopandas라는 라이브러리를 접하게 되어, 사용방법을 간단하게 포스팅하고자 한다. GeoPandas https://geopandas.org/en/stable/ GeoPandas 0.12.0 — GeoPandas 0.12.0+0.g31f8e6a.dirty documentation GeoPandas 0.12.0 GeoPandas is an open source project to make working with geospatial data in python easier. GeoPandas extends the datatypes used by pandas to allow spatial operations on geometric types. Geometric op..

article thumbnail
[pandas] map과 replace의 차이

판다스로 데이터프레임을 사용하면서 새로운 컬럼을 만들어야할 상황이 생겼다. 예를 들어 기존 값이 '1'이면 '01'로 대체하는 식의 작업이 필요했다. 이미 알고 있던 지식을 총동원하여 map을 적용하면 값을 변경된 새로운 컬럼을 만들 수 있을 것이라 판단했다. 그리고 실패했다.. 이유를 알아보았다. import pandas as pd df = pd.DataFrame({'a': ['x', 'y', 'z']}) df 예시로 사용할 데이터 프레임으로, a 컬럼에는 x, y, z 값이 들어있다. 이 값들을 딕셔너리를 이용해 맵핑하여 새로운 값으로 전환하려고 했다. x는 xx로, y는 yy로, w는 ww로 전환하고, 만약 딕셔너리에 기존 값이 키로 존재하지 않으면, 값을 그대로 보존하기를 바랬다. df['a_ma..

article thumbnail
[pandas] 칼럼 이름 변경하기: rename, set_index, columns

데이터 분석을 하다보면 파이썬에서 판다스 데이터프레임의 칼럼을 변경해야 하는 경우가 가끔 있습니다. 본 포스트에서는 칼럼 이름을 변경하는 방법에 대해 알아보겠습니다. 먼저 사용할 임의의 데이터프레임을 생성하겠습니다. import pandas as pd df = pd.DataFrame({'id': ['a', 'b', 'c'], 'date': ['20211030', '20211031', '20211031'], 'price': [1000, 2000, 2500]}) display(df) 칼럼명을 변경하는 방법은 크게 세 가지입니다. rename 메서드를 이용하는 방법, set_axis 메서드를 이용하는 방법, columns 어트리뷰트에 직접 할당하는 방법이 있는데요 하나씩 알아보겠습니다! 1. rename 메서..

article thumbnail
imblearn 모듈을 이용한 불균형 데이터 다루기

머신러닝에서 분류 문제를 다룰 때 가장 먼저 데이터의 분포를 확인하죠. 타겟이 두가지 범주를 갖는지(-> binary classification), 세 개 이상의 범주를 갖는지(-> multi-class classification), 하나의 데이터가 여러가지 범주를 동시에 가질 수도 있는지(-> multi-label classification) 살펴봅니다. 그리고 각 범주가 전체의 몇 퍼센트를 차지하고 있는지 비율을 살펴봅니다. 전체 자산 중에 부동산이 50%이고 주식이 30%, 그리고 현금이 20%를 차지한다! 이런 식으로요. 각 범주의 비율이 균일하게 나올 수도 있지만, 현실의 많은 데이터들은 불균형한 비율을 갖고 있습니다. 예를 들어 회원들에게 쿠폰을 주는 앱푸시를 보냈는데 그 알람을 누른 회원은 ..

article thumbnail
[pandas] rank와 sort_values를 이용하여 순위 매기기(부제: 여러 변수를 이용하여 순위 매기기)

학생들의 시험점수를 이용해 등수를 매길 때, 고객이 가장 필요로 할 것 같은 상품의 우선순위를 따질 때 등 순위를 생성해야하는 상황은 다양합니다.. 본 포스트에서는 데이터프레임에 저장된 변수를 이용해 순위를 생성하는 방법을 알아보겠습니다. 사용할 데이터는 다음과 같습니다. import pandas as np import numpy as np sample = pd.DataFrame({'id': ['A', 'B', 'C', 'D', 'E'] , 'time_spend_company': [4, 3, 4, 4, 3] , 'satisfaction_level': [0.89, 0.89, 0.74, 0.67, 0.72]}) display(sample) 1. rank 함수 이용하기 rank 함수는 주어진 값들을 이용하여 ..

article thumbnail
[pandas] 데이터 재구성: wide_to_long 함수와 melt 함수

데이터 분석을 하다보면 필요에 따라 기존에 구성되어 있는 데이터를 재구조화하기도 합니다. 본 포스팅에서는 파이썬에서 데이터프레임을 재구성하는 방법, 특히 wide하게 구성되어 있는 데이터를 long하게 변경하는 방법에 대해 알아보겠습니다. wide 데이터는 가로로 놓여진 데이터를, long 데이터는 세로로 늘어놓인 데이터라는 것을 이해하고 읽으시면 좋겠습니다. 사용할 데이터는 다음과 같습니다. import pandas as pd df = pd.DataFrame({"id" : ['a', 'b', 'c'], "pred1" : [0.5, 0.6, 0.8], "pred2" : [0.8, 0.6, 0.4], "pred3" : [0.2, 0.7, 0.5]}) display(df) unique한 아이디마다 세 종류의..

article thumbnail
[pandas] 딕셔너리를 데이터프레임의 열로 변경하는 방법

데이터프레임 형태를 갖는 어떤 데이터가 있다고 합시다. 이 데이터의 한 칼럼은 하나의 값이 아니라 여러 개의 값을 갖고 있습니다. 각각의 값들이 하나의 칼럼이 되어 새로운 값을 갖도록 하려면 어떻게 해야 할까요? 한 강의를 듣다가 문득 궁금증이 생겼는데, 강사님께서 직접 찾아보라고 하셔서 ㅎ.. 알아보았습니다. 유용하게 쓰일 법한 테크닉인데, 구현하는 방법은 굉장히 단순해서 놀랐어요. 데이터 준비 import os import pandas as pd import numpy as np from tqdm import tqdm path = '../data/movielens' movies_df = pd.read_csv(os.path.join(path, 'movies.csv'), index_col='movieId..

[pandas] object와 category의 차이

파이썬에서 tabular 형식으로 갖춰진 데이터를 다룰 때 보통 판다스를 가장 먼저 사용하죠. 판다스는 칼럼이 가질 수 있는 자료형으로 숫자, 문자, 날짜, boolen(True or False) 등을 지원합니다. 판다스로 데이터프레임을 다뤄보다가 문득 object 형식과 category 형식이 정확히 어떤 차이인지 궁금해졌어요. 그래서 이 포스팅에서는 두 형식의 개념과 차이에 대해 알아보고자 합니다. 판다스에서 자료형으로 사용되는 object와 category의 개념은 다음과 같이 이해할 수 있습니다. object 판다스에서는 문자열을 object라는 자료형으로 나타냅니다. 파이썬에서는 문자열을 string이라고 하지만, 판다스는 object라고 합니다. pd.DataFrame을 사용하여 데이터프레임을..

article thumbnail
Movielens 데이터 소개

grouplens에서 제공하는 movielens 데이터는 아래 사이트에서 다운받을 수 있습니다. 전체 데이터가 담겨있는 Full version과 이보다 적은 양의 데이터가 담겨있는 Small version이 준비되어 있는데요, Full version은 28만명의 사용자와 58000개의 영화 정보가 제공되고, Small version은 600명의 사용자와 9000개의 영화 정보가 제공된다고 합니다. 저장된 파일들의 형식은 동일하니 간단한 탐색을 위해 Full version 데이터가 아니라, Small version 데이터를 받아서 사용하겠습니다. https://grouplens.org/datasets/movielens/latest/ MovieLens Latest Datasets These datasets ..

반응형