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

Python/Syntax 47

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..

Python/Syntax
[Python] random 모듈

랜덤 함수를 사용할 때마다 다시 찾아봐야해서 정리를 해두려 합니다. 제공하는 함수가 워낙 많아서 그 중에서 자주 사용하는 함수 몇 개만 추리겠습니다. 랜덤함수에 대해 좀 더 공부하고 싶으신 분은 help(random)을 통해 도움말을 보거나, random — 의사 난수 생성 — Python 3.10.5 문서 random — 의사 난수 생성 소스 코드: Lib/random.py 이 모듈은 다양한 분포에 대한 의사 난수 생성기를 구현합니다. 정수에 대해서는, 범위에서 균일한 선택이 있습니다. 시퀀스에 대해서는, 무작위 docs.python.org random 공식 문서를 확인하시면 좋을 것 같습니다. 1. choice( seq) import random random.choice([1, 2, 3, 4]) # ..

Python/Syntax
[Python] slice 클래스

파이썬의 slice 클래스는 슬라이싱을 도와주는 클래스입니다. slice 클래스는 start, step, stop을 변수로 갖습니다. 하나의 인자를 가지는 경우 stop을 두 개의 인자를 가지는 경우 start, stop을 세 개의 인자를 가지는 경우 순서대로 start, stop, step을 순서대로 갖습니다. s1 = slice(5) # stop만 가짐 s2 = slice(1, 6) # start, stop을 가짐 s3 = slice(1, 10, 2) # start, stop, step을 가짐 슬라이스를 사용하면 슬라이싱이 가능한 객체에서 지정된 범위만큼 슬라이싱을 해줍니다. sample = "abcdefghijklmnopqrstuvwxyz" nums_list = [1, 2, 3, 4, 5, 6, 7..

Python/Syntax
[Pandas] 행에서 문자열, 값의 검색

DataFrame에서는 반복문 사용을 지양하고 대부분 내장함수를 사용하여 데이터를 처리합니다. 문자열을 검색할 때 "in"이나 re 모듈을 사용해서 검색을 많이 하는데 오늘은 contains에 대해 공부해보려 합니다. import pandas as pd data = [['Scarlett johansson', 160], ['Christopher Robert Evans', 183], ['Robert John Downey Jr.', 174], ['Mark Ruffalo', 173]] df = pd.DataFrame(data, columns=['name', 'height']) print(df['name'].str.contains('Jr')) 1. contains contains 메소드는 조건에 해당하는 bool..

Python/Syntax
[Pandas] 데이터 프레임 인덱스 초기화

DataFrame의 인덱스를 초기화할 때는 DataFrame.reset_index() 메소드를 사용합니다. 대부분의 메소드가 inplace를 지원하듯(DataFrame을 반환하지 않고 DataFrame의 값을 변경함) reset_index도 inplace를 지원합니다. import pandas as pd sales = pd.read_excel('매출내역.xlsx') cancel = sales.loc[sales['매출금액'] < 0] cancel.reset_index(inplace=True) cancel 별도의 설정없이 reset_index를 사용하는 경우 index가 따로 빠져나옵니다. drop=True로 설정하면 index를 별도의 열로 갖지 않고 삭제가 됩니다. import pandas as pd s..