python 37

enumerate

enumerate()는 '열거하다'는 뜻의 함수로, 순서가 있는 자료형(list,set,tuple등)을 인덱스를 포함한 enumerate 객체로 리턴한다. 사용 방법은 다음과 같다. a=[6,3,7,1,2,3] b=enumerate(a) print(b) print(list(b)) 이처럼 list()로 결과를 추출할 수 있는데, 인덱스를 자동으로 부여해주기 때문에 매우 편리하게 활용할 수 있다. 그렇다면 a=['a1','b2','c3']가 있을 때 이 리스트의 인덱스와 값을 함께 출력하려면 어떻게 해야 할까? a=['a1','b2','c3'] for i,v in enumerate(a): print(i,v)

python/문법 2021.08.15

제너레이터(Generator)

제너레이터는 루프의 반복 동작을 제어할 수 있는 루틴 형태를 말한다. 예를 들어 임의의 조건으로 숫자 1억 개를 만들어내 계산하는 프로그램을 작성한다고 가정해보자. 이 경우 제너레이터가 없다면 메모리 어딘가에 만들어낸 숫자 1억 개를 보관하고 있어야 한다. 그러나 제너레이터를 이용하면 단순히 제너레이터만 생성해두고 필요할 때 언제든 숫자를 만들어낼 수 있다. 이때 yied 구문을 사용하면 제너레이터를 리턴할 수 있다. 기존의 함수는 return 구문을 맞닥뜨리면 값을 리턴하고 모든 함수의 동작을 종료한다. 그러나 yield는 제너레이터가 여기까지 실행 중이던 값을 내보낸다는 의미로, 중간값을 리턴한 다음 함수는 종료되지 않고 계속해서 맨 끝에 도달할 때까지 실행된다. 물론 다음 코드의 경우처럼 while..

python/문법 2021.08.15

stack, unstack 함수 이해하기

import numpy as np import pandas as pd df = pd.DataFrame({ '지역': ['서울', '서울', '서울', '경기', '경기', '부산', '서울', '서울', '부산', '경기', '경기', '경기'], '요일': ['월요일', '화요일', '수요일', '월요일', '화요일', '월요일', '목요일', '금요일', '화요일', '수요일', '목요일', '금요일'], '강수량': [100, 80, 1000, 200, 200, 100, 50, 100, 200, 100, 50, 100], '강수확률': [80, 70, 90, 10, 20, 30, 50, 90, 20, 80, 50, 10] }) df stack & unstack stack: 컬럼 레벨에서 인덱스 레벨..

python/pandas 2021.03.30

pivot, pivot_table 함수의 이해

import numpy as np import pandas as pd df = pd.DataFrame({ '지역': ['서울', '서울', '서울', '경기', '경기', '부산', '서울', '서울', '부산', '경기', '경기', '경기'], '요일': ['월요일', '화요일', '수요일', '월요일', '화요일', '월요일', '목요일', '금요일', '화요일', '수요일', '목요일', '금요일'], '강수량': [100, 80, 1000, 200, 200, 100, 50, 100, 200, 100, 50, 100], '강수확률': [80, 70, 90, 10, 20, 30, 50, 90, 20, 80, 50, 10] }) df pivot dataframe의 형태를 변경 인덱스, 컬럼, 데이터로..

python/pandas 2021.03.30

DataFrame group by 이해 (groupby,gorups,grouping)

import pandas as pd import numpy as np # data 출처: https://www.kaggle.com/hesh97/titanicdataset-traincsv/data df = pd.read_csv('./train.csv') group by 아래의 세 단계를 적용하여 데이터를 그룹화(groupping) 데이터 분할 operation 적용 데이터 병합 GroupBy group 속성 각 그룹과 그룹에 속한 index를 dict 형태로 표현 grouping 함수 그룹 데이터에 적용 가능한 통계 함수(NaN은 제외하여 연산) count - 데이터 개수 sum - 데이터의 합 mean, std, var - 평균, 표준편차, 분산 min, max - 최소, 최대값 성별에 따른 생존율 구해..

python/pandas 2021.03.30

범주형 데이터 전처리 하기(one-hot encoding) (.get_dumies)

import pandas as pd one-hot encoding 범주형 데이터는 분석단계에서 계산이 어렵기 때문에 숫자형으로 변경이 필요함 범주형 데이터의 각 범주(category)를 column레벨로 변경 해당 범주에 해당하면 1, 아니면 0으로 채우는 인코딩 기법 pandas.get_dummies 함수 사용 drop_first: 첫번째 카테고리 값은 사용하지 않음. 변수 한개를 줄이기 위한 목적

python/pandas 2021.03.30