본문 바로가기

Skillset/Python, Git23

[시각화] 파이썬 이중 Y축 그래프 그리기 (ax.twinx) 파이썬 그래프를 그릴 때, 한 그래프에 더 많은 정보를 담고자 한다면 이중 축을 활용한다. 예를 들어 밑의 예시처럼, (좌측) 특정 변수의 countplot 및 비율만 그릴 수도 있겠지만 (우측) 오른쪽에 이중 축을 하나 더 만들어 또다른 변수의 값이 1인 비율도 나타낼 수 있다. 이렇게 이중 축을 만들고자 할 때, seaborn의 ax.twinx() 를 활용하는 방법을 알아보자. NOTE: 코드는 저의 깃허브에서 내려받을 수 있습니다! 먼저, 좌측 그래프는 앞의 포스팅에서 이미 그렸다. 이번 포스팅에서는 앞에서 그린 비율 countplot에 하나의 이중축을 더 만들어볼 것이다. 이중축은 'nom_1' 변수의 각 고유값들이 target = 1로 갖고 있는 비율을 나타내보자! import pandas as.. 2022. 7. 12.
[pandas] 순서가 있는 범주형 데이터에 순서 지정하기 - CategoricalDtype 이전에 쓴 시각화 포스팅의 첫머리에서 데이터의 종류에 대해 설명하였다. 그 때 데이터는 사칙연산이 가능한 '수치형 데이터'(numerical data)와 '범주형 데이터'(categorical data)로 나눌 수 있으며, 범주형 데이터 중에서 순서(순위)가 있는 데이터를 순서형 데이터(ordinal data)라고 하였다. 이런 순서형 데이터가 있는 데이터를 받은 경우, 순위를 꼭 지켜줘야 한다. 그 이유는 순서형 데이터는 순위대로 중요도가 달라지기 때문이다. 대표적인 순서형 데이터인 '학점'의 경우 A+이라는 값과 F 라는 값은 큰 차이가 있듯이! 하지만 데이터셋에 순위가 지정되어 있지 않은 경우가 많다. 이럴 때 판다스의 CategoricalDtype 함수를 사용하면 내가 순위를 지정한 대로 순서가 .. 2022. 7. 11.
[pandas] 범주형 데이터 2개를 비교하는 교차분석표(crosstab, 크로스탭) 알아보기 파이썬 판다스(pandas)에서 범주형 데이터 2개를 비교분석할 때 유용한 표, 교차분석표(crosstab)에 대해 알아보자. 이러한 교차분석표는 각 범주형 데이터의 개수를 행과 열로 cross해놓은 표를 의미한다. 다음은 pandas crosstab 공식 문서를 참고하였다. pd.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, margins_name='All', dropna=True, normalize=False) 필수 input index: 행으로 그룹화할 값 (array, series, list) columns: 열로 그룹화할 값 (array, series, list) Opt.. 2022. 7. 10.
[시각화] 파이썬 그래프 위에 글자 쓰기 (ax.patches, ax.text) 파이썬 그래프를 그렸는데, 바로 밑의 그림처럼 그래프 위에 비율까지 쓰고 싶은 경우가 있을 것이다. 이럴 때 사용하면 유용한 파이썬 seaborn에서 제공하는 ax.patches, ax.text 메서드를 활용하면 손쉽게 그릴 수 있다. 먼저 데이터셋은 캐글 Categorical Feature Encoding Challenge 에서 제공하는 'train.csv' 파일을 활용하였다. NOTE: 코드는 저의 깃허브에서 내려받을 수 있습니다! import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns df = pd.read_csv('train.csv', index_col = 'id') df.head() 먼.. 2022. 7. 9.
python sample 함수 사용법과 예제 sample 함수는 파이썬의 내장 함수이다. 보통 어떠한 데이터프레임에서 랜덤하게 n개의 데이터(인덱스)를 뽑아야 할 때 사용한다. DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None, ignore_index=False) n: 추출할 개수 frac: 추출할 비율, 1보다 작은 값으로 설정 (ex. 절반을 뽑는다면 0.5) n과 frac은 동시에 사용 불가능 replace: 중복 추출 허용 여부, True로 지정 시 중복을 허용하여 추출 weights: 가중치로, 레이블별 추출될 확률 지정 가능 random_state: 시드(seed)로, 원하는 숫자 지정 시 항상 같은 결과 출력 axis:.. 2022. 7. 4.
[pandas] Series & DataFrame에서 자주 사용하는 유용한 메서드 (2) 저번 포스팅에 이어, 파이썬 판다스의 Series(시리즈)와 DataFrame(데이터프레임)을 사용할 때, 자주 사용하는 유용한 메서드들을 정리하였다. 포스팅에서 사용한 코드는 이 깃허브에서 다운로드하시면 됩니다 :) ✔Table of Contents 2. 시리즈 & 데이터프레임 다루기 (공통 기능) 2-1. 인덱싱(Indexing) 저번 포스팅에서 만들었던 math_df를 활용한다. math_df 시리즈는 데이터프레임의 한 열만 떼어내면 된다고 했었다. 예시로 score 열을 떼어 오겠다. # math_df에서 'score' 열만 떼면 -> 그것이 시리즈! a = math_df['score'] a # 시리즈의 인덱싱 시리즈에서는 index와 values 메서드를 제공한다. 두 메서드를 활용하면 인덱스와.. 2022. 6. 27.
[pandas] Series & DataFrame에서 자주 사용하는 유용한 메서드 (1) 이번 포스팅과 다음 포스팅은 파이썬 판다스의 Series(시리즈)와 DataFrame(데이터프레임)을 사용할 때, 자주 사용하는 유용한 메서드들을 정리해보려고 한다. 먼저 시리즈와 데이터프레임이 무엇인지, 어떻게 만드는지를 알아보고 이 두가지를 다룰 때 어떤 메서드를 자주 사용하는지 알아보자! 이번 편은 시리즈와 데이터프레임이 무엇인지를 알아보자. 포스팅에서 사용한 코드는 이 깃허브에서 다운로드하시면 됩니다 :) ✔Table of Contents 1. 시리즈 & 데이터프레임 만들기 시리즈(series)와 데이터프레임(dataframe)은 데이터를 다루는 데 특화된 형태라고 할 수 있다. 먼저, 우리가 자주 보게 되는 데이터프레임(df)은 행과 열의 2차원 형태로 구성되어 있다. df에서는 열을 컬럼(co.. 2022. 6. 27.
파이썬 데이터프레임 인덱싱하기 - python dataframe indexing, slicing 데이터프레임을 다룰 때, 정말 자주 쓰이고 기본적인 기능인 인덱싱(indexing)과 슬라이싱(slicing)에 대해 알아보자. 데이터를 인덱싱할 때 기준은 1차원, 2차원 기준으로 설명하였다. 먼저 데이터는 seaborn에서 제공하는 기본 데이터셋인 titanic(타이타닉)을 활용하였다. import seaborn as sns df = sns.load_dataset('titanic') df.head() ✔Table of Contents 1. 1차원 인덱싱 먼저 1차원 인덱싱은 행만 인덱싱 or 열만 인덱싱하는 경우를 의미한다. 데이터가 연속된 경우는 콜론(:)을 사용해 인덱싱하며, 연속되지 않은 경우엔 괄호를 2개 쓴다. 열 인덱싱 열을 인덱싱하는 것은 아주 간단한데, 그냥 데이터프레임 뒤에 원하는 열.. 2022. 6. 23.
[pandas] 결측치가 특정 개수, 특정 비율 이상인 열 drop하는 방법 저번 포스팅이었던 결측치 처리에서는 결측치가 얼마나 있는지를 확인하는 방법과, 결측치를 처리하는 대표적인 4가지 방법에 대해 알아보았다. 이번 포스팅에선 번외편으로, 특정 열에 "결측치가 너무 많은 경우" 열을 drop(삭제)하는 방법에 관해 포스팅할 것이다. 즉, 특정 열에서 결측치의 값이 특정 개수 이상이거나, 특정 비율 이상이라면 drop시키기 위해 사용하는 방법을 알아보자. ✔Table of Contents 참고로 코드를 한번에 다운받으려면 이 깃허브 링크에서 '4. 결측치 처리' 코드를 다운받으면 됩니다 :) import pandas as pd import seaborn as sns df = sns.load_dataset('titanic') df 저번 포스팅에서 마찬가지로 seaborn에서 제공.. 2022. 6. 22.
[pandas] 결측치 다루기 - 결측치 확인, 결측치 처리(NaN drop, interpolate) ✔Table of Contents 참고로 데이터셋과 코드 파일은 저의 깃허브에 올려두었으니 다운받으시면 됩니다! :) GitHub - suy379/python_for_DA: Python for Data Analysis (데이터 분석을 위한 중요한 파이썬 모음) Python for Data Analysis (데이터 분석을 위한 중요한 파이썬 모음). Contribute to suy379/python_for_DA development by creating an account on GitHub. github.com 1. 결측치 확인하기 데이터를 받은 후, 결측치가 얼마나 있는지를 확인하는 것은 무엇보다도 중요하다. 결측치라는 것은 말 그대로 값이 없는 것으로, 이렇게 값이 없다면 일반 연산을 한다거나, 머신러.. 2022. 6. 21.