zenn.skin 무료버전 배포중!
자세히보기

Python 55

Python/Syntax
[Pandas] 빈도표 구하기, 카이제곱검정(crosstab, chi2_contingency)

1. pandas.crosstab crosstab은 범주형 변수를 기준으로 데이터의 개수를 파악할 때 사용합니다. crosstab을 사용해 빈도표를 만들어 카이제곱검정을 할 때도 유용합니다. 파라미터 설명 index: array-like, Series,list, arrays 행으로 지정할 데이터 columns: array-like, Series, list, arrays 열로 지정할 데이터 values: array-like, optional 집계할 데이터 (aggfunc을 같이 사용해야 합니다) aggfunc: function, optional 집계할 방법을 선택(count, mean, median ...) margins: bool, default=False 총계를 보고 싶은 경우 사용 dropna: bo..

Python/Syntax
[Python] Dictionary 대신 사용할 수 있는 dataclass

앞서 설명한 NamedTuple은 값을 수정하려 하면 AttributeError가 발생하기 때문에 딕셔너리 자료형과 마찬가지로 값을 수정할 때 발생하는 오류에 취약할 수 있습니다. dataclass는 NamedTuple처럼 클래스로 사용하는 방식이 아닌 데코레이터를 사용하는 방법입니다. from dataclasses import dataclass @dataclass class PersonInfo: height: float weight: float name: str person = PersonInfo(180, 75, 'koo') NamedTuple과 동일한 방식으로 값에 접근할 수 있고, 값에 수정도 가능합니다. print(person.height) # 180 person.height = 181 print..

Python/Syntax
[Python] Dictionary 대신 사용할 수 있는 NamedTuple (NamedTuple Type Annotation)

C나 C++, Java는 함수나 클래스를 이용할 때, 파라미터의 타입이나 출력값의 타입 등을 지정해줄 수 있습니다. 타입을 미리 지정하면 오류를 줄이거나 발견하기 쉽고, 코드의 가독성을 좀 더 올릴 수 있는 장점이 있습니다. python에서도 typing 모듈을 이용한 type annotation을 지원해줍니다. 오늘은 그 중에서도 Named Tuple에 대해 알아보려 합니다. 1. 딕셔너리(Dict) person = {'height': 180, 'weight': 75, 'name': 'koo'} 데이터를 표현할 때 딕셔너리 자료형을 사용하면, 데이터의 속성을 나타낼 수 있습니다. 딕셔너리 자료형에는 몇가지 문제가 있습니다. 약간의 오버헤드가 있는 비효율적인 표현 방식이기 때문에 필요 이상의 메모리를 차..

Python/Syntax
[colab] colab에서 ipynb파일 import하기

지난번에 ipynb에서 다른 ipynb 파일을 import하는 방법에 대해 알아봤습니다. [JupyterNoteBook] 사용자 정의 ipynb 파일 임포트 (다른 ipynb 파일 임포트) JupyterNotebook에서는 py 파일이 아닌 ipynb 파일을 사용해 코드를 작성합니다. 일반적인 py 파일의 경우 import를 하면 바로 사용할 수 있지만 JupyterNotebook에서는 별도의 라이브러리를 임포트 한 이후에 koosco.tistory.com 오늘은 colab에서 동일하게 ipynb 파일을 import하는 방법에 대해 알아보겠습니다. 1. import_ipynb 설치 !pip install import_ipynb 먼저 ipynb파일을 import하기 위해 import_ipynb를 pip를 ..

Python/Syntax
[matplotlib] 텍스트 추가하기, annotate

matplotlib의 annotate는 지정된 xy위치에 text를 삽입해주는 함수입니다. 파라미터 설명 text : str 추가할 문자열 xy : (float, float) 추가할 (x, y) 위치 xytext : (float, float) xy위치에서 조정할 텍스트 위치 textcoords : str or Artist or Transform or (float, float) - default: value of xycoords xytext가 제공되는 좌표계 'offset points': xy값으로부터의 offset(point) 'offset pixels': xy값으로부터의 offset(pixel) annotate와 산점도를 사용하면 다음과 같이 정보를 표현할 수 있습니다. import matplotlib..

Python/Syntax
[Pandas] DataFrame 조건부 검색 시 주의사항

DataFrame은 bool값을 이용한 boolean indexing을 사용할 수 있습니다. import pandas as pd df = pd.read_csv('./data.csv') df[df['country'].isin(['Australia', 'New Zealand')] 위와 같이 boolean indexing을 사용하면 원하는 조건의 값을 쉽게 찾을 수 있습니다. 파이썬에서 if문을 사용할 때처럼, | 또는 & 연산자를 사용하여 동시에 여러 개의 조건을 사용할 수도 있습니다. 이 때는 꼭 각 조건들을 '(', ')'을 사용하여 묶어주어야 합니다. df[df['country'].isin(['Australia', 'New Zealand']) & df['points'] >= 95] 괄호를 사용하지 않고..

Python/Syntax
[JupyterNoteBook] 사용자 정의 ipynb 파일 임포트 (다른 ipynb 파일 임포트)

JupyterNotebook에서는 py 파일이 아닌 ipynb 파일을 사용해 코드를 작성합니다. 일반적인 py 파일의 경우 import를 하면 바로 사용할 수 있지만 JupyterNotebook에서는 별도의 라이브러리를 임포트 한 이후에 사용할 수 있습니다. 다음과 같은 사용자 정의 함수를 만들고 다른 notebook에서 임포트 해보겠습니다. 그냥 ipynb 파일을 임포트하려하면 multiply라는 module이 존재하지 않는다고 합니다. pip3 install import_ipynb pip를 통해 import_ipynb를 설치한 다음 다시 사용자 정의 함수를 임포트 해보겠습니다. 정상적으로 ipynb 파일을 임포트하는 것을 확인할 수 있습니다.

Python/Syntax
[Numpy] ndarray 합치기 (c_, r_, column_stack)

numpy에서 제공되는 클래스인 c_와 r_은 입력받은 ndarray를 결합하여 새로운 ndarray를 빠르게 생성할 수 있도록 도와줍니다. 이 때, c_와 r_은 ()이 아닌 []을 통해 ndarray를 입력받습니다. 1. r_ c_를 이해하기 위해서는 r_ 클래스를 먼저 이해해야 합니다. class CClass(AxisConcatenator): """ Translates slice objects to concatenation along the second axis. This is short-hand for ``np.r_['-1,2,0', index expression]``, which is useful because of its common occurrence. In particular, arrays..