Skip to content

Pandas 요약 설명서 (Cheat Sheet)

Pandas 라이브러리 사용을 위한 상세 가이드입니다.

Pandas 설치

명령 설명
conda install pandas Pandas를 설치하는 가장 좋은 방법은 conda를 이용하는 것입니다
python3 -m pip install --upgrade pandas PyPI를 통해 설치
pip install pandas 표준 pip 설치

주요 약어 및 패키지 임포트

약어 설명
df 모든 Pandas DataFrame 객체
s 모든 Pandas Series 객체

임포트 방법

명령 설명
import pandas as pd Pandas를 pd라는 별칭으로 임포트
import numpy as np Numpy를 np라는 별칭으로 임포트

데이터 선택

명령 설명
df[col] 열 이름을 기반으로 열을 Series 형태로 반환
df[[col1, col2]] 여러 열을 DataFrame 형태로 반환
s.iloc[0] 위치를 기준으로 데이터 선택
s.loc['index_one'] 인덱스를 기준으로 데이터 선택
df.iloc[0,:] 첫 번째 행 반환
df.iloc[0,0] 첫 번째 열의 첫 번째 요소 반환

데이터 정리

명령 설명
df.columns = ['a','b','c'] 열 이름 변경
pd.isnull() DataFrame 내의 null 값을 확인하고 Boolean 배열을 반환
pd.notnull() DataFrame 내의 null이 아닌 값을 확인하고 Boolean 배열을 반환
df.dropna() null 값을 포함하는 모든 행 삭제
df.dropna(axis=1) null 값을 포함하는 모든 열 삭제
df.dropna(axis=1, thresh=n) null이 아닌 값이 n개 미만인 모든 행 삭제
df.fillna(x) DataFrame 내의 모든 null 값을 x로 대체
s.astype(float) Series 데이터 타입을 float으로 변환
s.replace(1, 'one') 1과 동일한 모든 값을 ‘one’으로 대체
s.replace([1,3], ['one', 'three']) 1을 ‘one’으로, 3을 ’three’로 대체
df.rename(columns=lambda x: x + 1) 열 이름 일괄 변경
df.rename(columns={'old_name': 'new_name'}) 특정 열 이름 선택 변경
df.set_index('column_one') 인덱스 열 변경
df.rename(index=lambda x: x + 1) 인덱스 일괄 변경

데이터 가져오기

명령 설명
pd.read_csv(filename) CSV 파일에서 데이터 가져오기
pd.read_table(filename) 구분자로 구분된 텍스트 파일에서 데이터 가져오기
pd.read_excel(filename) Excel 파일에서 데이터 가져오기
pd.read_sql(query, connection_object) SQL 테이블/데이터베이스에서 데이터 가져오기
pd.read_json(json_string) JSON 문자열에서 데이터 가져오기
pd.read_html(url) URL, 문자열 또는 HTML 파일에서 테이블 추출
pd.read_clipboard() 클립보드에서 내용을 가져와 read_table()에 전달
pd.DataFrame(dict) 딕셔너리 객체에서 데이터 가져오기 (Key는 열 이름, Value는 데이터)

데이터 내보내기

명령 설명
df.to_csv(filename) 데이터를 CSV 파일로 내보내기
df.to_excel(filename) 데이터를 Excel 파일로 내보내기
df.to_sql(table_name, connection_object) 데이터를 SQL 테이블로 내보내기
df.to_json(filename) 데이터를 JSON 형식의 텍스트 파일로 내보내기

데이터 처리: Filter, Sort 및 GroupBy

명령 설명
df[df[col] > 0.5] ‘col’ 열의 값이 0.5보다 큰 행 선택
df.sort_values(col1) col1 열을 기준으로 데이터 정렬 (기본값 오름차순)
df.sort_values(col2, ascending=False) col2 열을 기준으로 내림차순 정렬
df.sort_values([col1, col2], ascending=[True, False]) col1은 오름차순, col2는 내림차순으로 정렬
df.groupby(col) ‘col’ 열을 기준으로 그룹화된 GroupBy 객체 반환
df.groupby([col1, col2]) 여러 열을 기준으로 그룹화된 GroupBy 객체 반환
df.groupby(col1)[col2].mean() col1로 그룹화한 후 col2 열의 평균 반환
df.pivot_table(index=col1, values=[col2, col3], aggfunc=max) col1로 그룹화하고 col2와 col3의 최댓값을 계산하는 피벗 테이블 생성
df.groupby(col1).agg(np.mean) col1로 그룹화된 모든 열의 평균 반환
df.apply(np.mean) 각 열에 np.mean 함수 적용
df.apply(np.max, axis=1) 각 행에 np.max 함수 적용

테스트 객체 생성

명령 설명
pd.DataFrame(np.random.rand(20,5)) 20행 5열의 난수로 구성된 DataFrame 생성
pd.Series(my_list) 반복 가능한 객체 my_list로부터 Series 생성
df.index = pd.date_range('1900/1/30', periods=df.shape[0]) 날짜 인덱스 추가

데이터 보기 및 검사

명령 설명
df.head(n) DataFrame의 처음 n행 보기
df.tail(n) DataFrame의 마지막 n행 보기
df.shape 행과 열의 개수 확인
df.info() 인덱스, 데이터 타입, 메모리 정보 확인
df.describe() 수치형 열의 요약 통계 확인
s.value_counts(dropna=False) Series 객체의 고유값과 개수 확인
df.apply(pd.Series.value_counts) DataFrame의 각 열별 고유값과 개수 확인

데이터 병합

명령 설명
df1.append(df2) df2의 행을 df1의 끝에 추가
pd.concat([df1, df2], axis=1) df2의 열을 df1의 끝에 추가
df1.join(df2, on=col1, how='inner') df1과 df2의 열 사이에 SQL 스타일의 join 실행

데이터 통계

명령 설명
df.describe() 수치형 열의 요약 통계 확인
df.mean() 모든 열의 평균 반환
df.corr() 열과 열 사이의 상관 계수 반환
df.count() 각 열의 null이 아닌 값의 개수 반환
df.max() 각 열의 최댓값 반환
df.min() 각 열의 최솟값 반환
df.median() 각 열의 중앙값 반환
df.std() 각 열의 표준 편차 반환