# pandas 불러오기
import pandas as pd
pd.read_csv('파일 경로', sep='필드 구분 문자')
: csv 파일 불러오기
df.head(N)
: 앞에서부터 N개의 로우 반환
df.shape
: 크기를 (행, 열) 형태로 반환
df.info()
: 총 데이터 건수, 데이터 타입, Null 데이터 개수 등 정보 제공
df.describe()
: 숫자형(int, float) 칼럼의 데이터 분포 정보 제공
df.value_counts()
: 범주형 데이터의 분포도 확인, 시리즈에서 사용 # Series: 칼럼 1개를 가짐
pd.DataFrame(list/ndarray, columns='')
: list/ndarray -> DataFrame으로 변환
pd.DataFrame(dict)
: dictionary -> DataFrame으로 변환
** Key는 칼럼명으로 매핑, Value는 리스트 형(또는 ndarray)
df.values
: DataFrame -> ndarray로 변환
df.values.tolist()
: DataFrame -> list로 변환
df.to_dict()
: DataFrame -> dictionary로 변환
#예시 코드
df['new_col1'] = 0 # 상숫값 할당
df['new_col2'] = df['col1'] + df['col2'] + 1 # 기존 칼럼을 활용한 계산식
df['new_col2'] = df['new_col2'] + 100 # 기존값 업데이트
df.drop()
df.index
: 인덱스 객체 추출
df.index.values
: 인덱스 값을 numpy.ndarray 형태로 반환
df.reset_index()
: 인덱스를 연속된 int 숫자형으로 새롭게 할당
df.sort.values(by='기준 칼럼')
: 정렬 수행df.min()
df.max()
df.sum()
df.count()
df.mean()
df.groupby(by='기준 칼럼')
: 그룹화 수행#예시 코드 df.groupby('col1').count() # 기준 칼럼을 제외한 모든 칼럼에 count() 적용 df.groupby('col1')[['col2', 'col3']].count() # []: 특정 칼럼에 적용
df.groupby().agg()
: 여러 개의 aggregation 함수 적용 #예시 코드 df.groupby('col1')['col2'].agg([max, min]) ## 칼럼이 여러 개일 경우, {칼럼:함수} 딕셔너리 형태로 지정 agg_format={'col2':'max', 'col3':'sum', 'col4':'mean'} titanic_df.groupby('col1').agg(agg_format)
df[]
: 칼럼명 지정, 인덱스 형태로 변환 가능한 표현식, 불린 인덱싱#예시 코드 df['col1'] # 칼럼명 지정 df[0:2] # 인덱스 형태로 변환 가능한 표현식 df[df['col1'] == 0] # 불린 인덱싱
df.loc[]
: 명칭 기반 인덱싱
** [start:end] -> start ~ end 모두 출력
df.iloc[]
: 위치 기반 인덱싱(슬라이싱 O, 팬시 인덱싱 O, 불린 인덱싱 X)
불린인덱싱: 복합 조건 적용 가능
** and(&), or(|), not(~)
df.isna()
: 결측치 여부 True/False 확인 df.isna().sum()
: 결측치 개수 확인 df.fillna()
: 결측치를 특정값으로 대체df.apply(lambda 입력 인자: 반환값)
#예시 코드 df['Name_len'] = df['Name'].apply(lambda x : len(x)) ## 나이가 15세 이하면 "Child", 그렇지 않으면 "Adult" df['Child_Adult'] = df['Age'].apply(lambda x : 'Child' if x <=15 else 'Adult' ) ## elif 제공 X, else 절에서 다시 (if ~ else ~) 사용 df['Age_cat'] = df['Age'].apply(lambda x : 'Child' if x<=15 else ('Adult' if x <= 60 else 'Elderly'))
#나이에 따라 세분화된 분류를 수행하는 함수 생성 def get_category(age): cat = '' if age <= 5: cat = 'Baby' elif age <= 12: cat = 'Child' elif age <= 18: cat = 'Teenager' elif age <= 25: cat = 'Student' elif age <= 35: cat = 'Young Adult' elif age <= 60: cat = 'Adult' else : cat = 'Elderly' return cat
#lambda식에 위에서 생성한 get_category( ) 함수를 반환값으로 지정 #get_category(X)는 입력값으로 ‘Age’ 칼럼 값을 받아서 해당하는 cat 반환 df['Age_cat'] = df['Age'].apply(lambda x : get_category(x))