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

Python/Syntax 47

Python/Syntax
[Pandas] 함수 정리

pandas 라이브러리에서 사용하는 함수 정리 1. 생성 import pandas as pd # Dict를 입력값으로 받는 경우 # Key는 column이 된다 df = pd.DataFrame({'a': [4, 5, 6, 7], 'b': [8, 9, 10, 11], 'c': [12, 13, 14, 15]}, index=[1, 2, 3, 4]) # List를 입력값으로 받는 경우 # 각 리스트는 row가 된다 df2 = pd.DataFrame( [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]], index=[1, 2, 3, 4], columns=list('abc')) 2. 이중 인덱스 데이터프레임 # index를 MultiIndex로 설정 #..

Python/Syntax
[Python] while ~ else문

if ~ else문을 이용하면 if 조건식에 있는 조건을 만족하지 못할 때 else에 있는 실행문이 실행된다. if 조건문1: 실행문1 else: 실행문2 이런 조건을 while문에 대해서도 동일하게 적용할 수 있다. while 조건문: 실행문1 ... if ~: break else: 실행문2 만약 while 조건문이 아니라 내부에서 break에 의해 반복문이 멈추면 else에 해당하는 실행문은 실행되지 않는다. 반면 while 조건문에 의해 while문이 멈춘다면 else에 있는 실행문이 실행되게 된다. # 백준 16952: A -> B a, b = map(int, input().split()) cnt = 0 while a != b: if b % 10 == 1: b //= 10 elif b % 2 ==..

Python/Syntax
[Python] glob

1. glob 특정 패턴이나 확장자를 가진 파일들을 불러올 때 사용할 수 있다. glob 모듈의 glob를 사용하면 조건에 맞는 파일명들을 리스트 형태로 반환받을 수 있다. 정규 표현식을 사용할 수 없지만 *나 ? 같은 와일드 카드를 사용할 수 있다. 2. 사용 from glob import glob file_list = glob('cat?.txt') print(file_list) for file in file_list: print(file) from glob import glob file_list = glob('cat1*') for file in file_list: print(file)

Python/Syntax
[Python] itertools (순열, 조합)

python에서 제공하는 itertools를 사용하면 효율적으로 순열과 조합을 구할 수 있습니다. 1. 조합(combinations) 첫번째 파라미터로 iterable 객체를 받고, 두번째 파라미터는 선택할 원소의 개수를 입력받습니다. from itertools import combinations A = [2, 1, 3] for i in combinations(A, 2): print(i) for i in combinations(A, 3): print(i) 2. combinations_with_replacement 중복을 허용하여 입력받은 iterable 객체 내 원소로 만들 수 있는 모든 조합을 구할 수 있습니다. from itertools import combinations_with_replacemen..

Python/Syntax
[Pandas] pivot

pandas.DataFrame.pivot을 사용하면 열값에 따른 pivot table을 생성할 수 있습니다. 행값과 열값이 동일한 데이터가 2개 이상 존재하면 ValueError가 발생하기 때문에 주의해야 합니다. 파라미터 설명 index pivot table의 index를 생성할 열 선택 default=None columns pivot table의 column을 생성할 열 선택 default=None values pivot table이 나타낼 값을 선택 별도로 지정을 하지 않는다면 남은 열들을 사용함 defalut=None import pandas as pd data = pd.read_csv('data.csv') data[:8].pivot('age', 'sex', 'height') pivot을 사용하면..

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