속성
Series와 DF 공통 속성
| 속성명 | Series 반환값 타입 | DataFrame 반환값 타입 | 설명 |
|---|
| shape | tuple | tuple | 데이터의 형태 |
| ndim | int | int | 차원 수 |
| axes | list | list | 축 정보 |
| T | pandas.Series | pandas.DataFrame | 전치(Transpose) |
| values | numpy.ndarray (1차원) | numpy.ndarray (2차원) | 실제 데이터(numpy array) |
| dtype | numpy.dtype | numpy.dtype | 데이터의 dtype |
| size | int | int | 전체 원소 개수 |
| empty | bool | bool | 비어 있는지 여부 |
| index | pandas.Index | pandas.Index | 행 인덱스 |
| hasnans | bool | bool | NaN 포함 여부 |
| attrs | dict | dict | 사용자 정의 메타데이터(실험적) |
| flags | pandas.core.flags.Flags | pandas.core.flags.Flags | pandas 객체의 플래그 정보 |
| nbytes | int | int | 데이터가 차지하는 바이트 수 |
DF만의 속성
| 속성명 | 반환값 타입 | 설명 |
|---|
| dtypes | pandas.Series | 각 열의 데이터 타입 |
| columns | pandas.Index | 열 인덱스(컬럼명) |
| style | pandas.io.formats.style.Styler | 시각화 스타일링 객체 |
Series만의 속성
| 속성명 | 반환값 타입 | 설명 |
|---|
| name | object | 시리즈의 이름 |
| array | pandas.api.extensions.ExtensionArray | 내부 데이터의 ExtensionArray |
| is_unique | bool | 모든 값이 유일한지 여부 |
| is_monotonic_increasing | bool | 값이 오름차순 단조 증가인지 여부 |
| is_monotonic_decreasing | bool | 값이 내림차순 단조 감소인지 여부 |
| real | pandas.Series | 실수부(복소수일 때) |
| imag | pandas.Series | 허수부(복소수일 때) |
| str | pandas.core.strings.accessor.StringMethods | 문자열 메소드 접근자 |
| dt | pandas.core.indexes.accessors.DatetimeProperties | 날짜/시간 메소드 접근자 |
| cat | pandas.core.arrays.categorical.CategoricalAccessor | 범주형 메소드 접근자 |
str, dt, cat 속성은 해당 Series의 dtype이 각각 문자열, datetime, category일 때만 사용 가능
메소드
Series와 DF 공통 메소드
| 메소드명 | Series 반환값 타입 | DataFrame 반환값 타입 | 설명 |
|---|
| head(), tail() | pandas.Series | pandas.DataFrame | 앞/뒤 일부 데이터 반환 |
| copy() | pandas.Series | pandas.DataFrame | 객체 복사 |
| describe() | pandas.Series | pandas.DataFrame | 요약 통계량 반환 |
| count() | int | pandas.Series | 결측값 제외 개수 |
| min(), max(), sum() | scalar | pandas.Series | 최소/최대/합계 |
| mean(), median(), std(), var() | float | pandas.Series | 평균/중앙값/표준편차/분산 |
| mode() | pandas.Series | pandas.Series | 최빈값 |
| unique() | numpy.ndarray | numpy.ndarray | 고유값 배열 (DataFrame은 특정 열에서만) |
| nunique() | int | pandas.Series | 고유값 개수 |
| sort_values() | pandas.Series | pandas.DataFrame | 값 기준 정렬 |
| sort_index() | pandas.Series | pandas.DataFrame | 인덱스 기준 정렬 |
| isnull(), isna() | pandas.Series | pandas.DataFrame | 결측값 여부 (True/False) |
| notnull(), notna() | pandas.Series | pandas.DataFrame | 결측값이 아닌지 여부 |
| fillna() | pandas.Series | pandas.DataFrame | 결측값 채우기 |
| dropna() | pandas.Series | pandas.DataFrame | 결측값 제거 |
| astype() | pandas.Series | pandas.DataFrame | 데이터 타입 변환 |
| apply() | pandas.Series | pandas.DataFrame | 함수 적용 |
| to_numpy() | numpy.ndarray | numpy.ndarray | numpy 배열로 변환 |
| sample() | pandas.Series | pandas.DataFrame | 임의 샘플 추출 |
| equals() | bool | bool | 두 객체가 동일한지 비교 |
| idxmin(), idxmax() | object/int/label | pandas.Series | 최소/최대값 위치 인덱스 |
| drop_duplicates() | pandas.Series | pandas.DataFrame | 중복값 제거 |
| duplicated() | pandas.Series | pandas.DataFrame | 중복여부(Boolean) 반환 |
| memory_usage() | int | pandas.Series | 메모리 사용량 |
| abs() | pandas.Series | pandas.DataFrame | 절댓값 |
| add(), sub(), mul(), div(), pow() | pandas.Series | pandas.DataFrame | 산술 연산 |
| clip() | pandas.Series | pandas.DataFrame | 값 범위 제한 |
| between() | pandas.Series | pandas.DataFrame | 구간 포함 여부 |
| replace() | pandas.Series | pandas.DataFrame | 값 치환 |
| where(), mask() | pandas.Series | pandas.DataFrame | 조건에 따라 값 선택/변경 |
| combine_first() | pandas.Series | pandas.DataFrame | 결측값을 다른 객체로 채움 |
| interpolate() | pandas.Series | pandas.DataFrame | 보간(결측값 채우기) |
| quantile() | float | pandas.Series | 분위수 |
| cumsum(), cumprod(), cummax(), cummin() | pandas.Series | pandas.DataFrame | 누적 합/곱/최대/최소 |
| pct_change() | pandas.Series | pandas.DataFrame | 퍼센트 변화율 |
| rank() | pandas.Series | pandas.DataFrame | 순위 반환 |
| round() | pandas.Series | pandas.DataFrame | 반올림 |
| to_frame() | pandas.DataFrame | - | Series → DataFrame 변환 |
DF만의 메소드
| 메소드명 | 반환값 타입 | 설명 |
|---|
| groupby() | DataFrameGroupBy | 그룹별 연산 객체 반환 |
| pivot(), pivot_table() | pandas.DataFrame | 피벗 테이블 생성 |
| melt() | pandas.DataFrame | wide → long 형태 변환 |
| merge() | pandas.DataFrame | 다른 DataFrame과 병합 |
| join() | pandas.DataFrame | 인덱스/열 기준 결합 |
| concat() | pandas.DataFrame | 여러 DataFrame 연결 |
| set_index() | pandas.DataFrame | 인덱스 설정 |
| reset_index() | pandas.DataFrame | 인덱스 초기화 |
| transpose(), T | pandas.DataFrame | 전치(행/열 교환) |
| add_prefix() | pandas.DataFrame | 컬럼명 접두사 추가 |
| add_suffix() | pandas.DataFrame | 컬럼명 접미사 추가 |
| select_dtypes() | pandas.DataFrame | dtype별 열 선택 |
| info() | None | 데이터프레임 요약 정보 출력 |
| corr(), cov() | pandas.DataFrame | 상관계수/공분산 반환 |
| plot() | matplotlib 객체 | 그래프 그리기 |
| value_counts() | pandas.Series | 값 개수 집계 (특정 열에서 사용) |
| iterrows(), itertuples(), iteritems() | generator | 행/열 반복자 반환 |
| explode() | pandas.DataFrame | 리스트/배열 컬럼을 행으로 분리 |
| filter() | pandas.DataFrame | 조건에 맞는 행/열 선택 |
| assign() | pandas.DataFrame | 새 컬럼 추가 |
| drop() | pandas.DataFrame | 행/열 삭제 |
| drop_duplicates() | pandas.DataFrame | 중복 행 제거 |
| duplicated() | pandas.Series | 중복 행 여부(Boolean) 반환 |
| sort_values() | pandas.DataFrame | 값 기준 정렬 |
| sort_index() | pandas.DataFrame | 인덱스 기준 정렬 |
| isnull(), notnull() | pandas.DataFrame | 결측값 여부(Boolean) 반환 |
| fillna(), dropna() | pandas.DataFrame | 결측값 채우기/제거 |
| astype() | pandas.DataFrame | 데이터 타입 변환 |
| apply(), applymap() | pandas.DataFrame | 함수 적용 |
drop_columns는 공식 메소드가 아니며, drop 사용을 권장한다.
Series만의 메소드
| 메소드명 | 반환값 타입 | 설명 |
|---|
| map() | pandas.Series | 함수/딕셔너리 매핑 |
| to_frame() | pandas.DataFrame | Series를 DataFrame으로 변환 |
| append() | pandas.Series | Series 이어붙이기 (deprecated, concat 권장) |
| items() | generator | (인덱스, 값) 튜플 반복자 반환 |
| keys() | pandas.Index | 인덱스 반환 |
| get() | scalar | 인덱스 값 반환 (없으면 기본값 반환) |
| str | StringMethods | 문자열 전용 메소드 접근자 |
| dt | DatetimeProperties | datetime 전용 메소드 접근자 |
| cat | CategoricalAccessor | 범주형 전용 메소드 접근자 |
| autocorr() | float | 자기상관계수 |
| factorize() | tuple | (라벨 배열, 고유값 배열) 반환 |
| searchsorted() | int 또는 배열 | 정렬된 시리즈에서 값이 들어갈 위치 |
| combine_first() | pandas.Series | 결측값을 다른 Series로 채움 |
| between() | pandas.Series | 구간 포함 여부(Boolean) 반환 |
| value_counts() | pandas.Series | 값 개수 집계 |
| idxmin(), idxmax() | label | 최소/최대값 위치 인덱스 |
| add(), sub(), mul(), div(), pow() | pandas.Series | 산술 연산 |
| abs() | pandas.Series | 절댓값 |
| clip() | pandas.Series | 값 범위 제한 |
| round() | pandas.Series | 반올림 |
| cumsum(), cumprod(), cummax(), cummin() | pandas.Series | 누적 합/곱/최대/최소 |
| pct_change() | pandas.Series | 퍼센트 변화율 |
| rank() | pandas.Series | 순위 반환 |
| interpolate() | pandas.Series | 보간(결측값 채우기) |
특수 메소드 속성 및 메소드
Series와 DF 공통 특수 속성
| 속성명 | Series 반환값 타입 | DataFrame 반환값 타입 | 설명 |
|---|
| iloc | pandas.core.indexing._iLocIndexer | pandas.core.indexing._iLocIndexer | 정수 위치 기반 인덱싱 인덱서 |
| loc | pandas.core.indexing._LocIndexer | pandas.core.indexing._LocIndexer | 라벨 기반 인덱싱 인덱서 |
| at | pandas.core.indexing._AtIndexer | pandas.core.indexing._AtIndexer | 라벨 기반 스칼라 값 접근자 |
| iat | pandas.core.indexing._iAtIndexer | pandas.core.indexing._iAtIndexer | 정수 위치 기반 스칼라 값 접근자 |
| axes | list | list | 축 정보 리스트 (index, columns 등) |
| flags | pandas.core.flags.Flags | pandas.core.flags.Flags | 객체의 플래그 정보 |
| empty | bool | bool | 비어있는지 여부 |
| attrs | dict | dict | 사용자 정의 메타데이터 |
| T | pandas.Series | pandas.DataFrame | 전치 (Transpose) 객체 반환 |
DF만의 특수 속성
| 속성명 | 반환값 타입 | 설명 |
|---|
| style | pandas.io.formats.style.Styler | DataFrame 시각화 스타일링 객체 |
Series만의 특수 속성
| 속성명 | 반환값 타입 | 설명 |
|---|
| str | pandas.core.strings.accessor.StringMethods | 문자열 메소드 접근자 |
| dt | pandas.core.indexes.accessors.DatetimeProperties | 날짜/시간 메소드 접근자 |
| cat | pandas.core.arrays.categorical.CategoricalAccessor | 범주형 메소드 접근자 |
Series와 DF 공통 특수 메소드
| 메소드명 | Series 반환값 타입 | DataFrame 반환값 타입 | 설명 |
|---|
| __getitem__ | pandas.Series, scalar 등 | pandas.DataFrame, pandas.Series, scalar 등 | 대괄호 연산자 [] 구현 메소드 (인덱싱, 슬라이싱 등) |
| __setitem__ | 없음 | 없음 | 대괄호 연산자 []를 통한 값 설정 메소드 |
| __len__ | int | int | 길이 반환 메소드 |
| __iter__ | iterator | iterator | 이터레이터 반환 메소드 |
| __contains__ | bool | bool | in 연산자 지원 메소드 |
| pipe | pandas.Series | pandas.DataFrame | 함수형 프로그래밍 스타일 메소드, 체인 가능 |
| query | pandas.Series | pandas.DataFrame | 조건식 문자열로 데이터 필터링 |
| eval | pandas.Series | pandas.DataFrame | 문자열 표현식을 평가하여 계산 |
| memory_usage | int | pandas.Series | 메모리 사용량 반환 |
| to_dict | dict | dict | 객체를 딕셔너리로 변환 |
| to_json | str | str | JSON 형식으로 변환 |
| to_csv | str 또는 없음 | str 또는 없음 | CSV 파일로 저장(파일 경로 지정 시 반환값 없음) |
| to_excel | 없음 | 없음 | 엑셀 파일로 저장 |
| to_sql | 없음 | 없음 | SQL 데이터베이스에 저장 |
| to_html | str | str | HTML 테이블로 변환 |
| to_clipboard | 없음 | 없음 | 클립보드에 복사 |
| to_string | str | str | 문자열로 변환 |
| info | 없음 | 없음 | DataFrame 요약 정보 출력 |
| plot | matplotlib 객체 | matplotlib 객체 | 시각화 메소드 |
DF만의 특수 메소드
| 메소드명 | 반환값 타입 | 설명 |
|---|
| to_frame | pandas.DataFrame | DataFrame으로 변환 (Series에서 주로 사용) |
| merge | pandas.DataFrame | 다른 DataFrame과 병합 |
| join | pandas.DataFrame | 인덱스/열 기준 결합 |
| concat | pandas.DataFrame | 여러 DataFrame 연결 |
| groupby | DataFrameGroupBy | 그룹별 연산 객체 반환 |
| pivot | pandas.DataFrame | 피벗 테이블 생성 |
| pivot_table | pandas.DataFrame | 피벗 테이블(집계 포함) 생성 |
| melt | pandas.DataFrame | wide → long 형태 변환 |
| set_index | pandas.DataFrame | 인덱스 설정 |
| reset_index | pandas.DataFrame | 인덱스 초기화 |
| add_prefix | pandas.DataFrame | 컬럼명 접두사 추가 |
| add_suffix | pandas.DataFrame | 컬럼명 접미사 추가 |
| select_dtypes | pandas.DataFrame | dtype별 열 선택 |
| corr | pandas.DataFrame | 상관계수 반환 |
| cov | pandas.DataFrame | 공분산 반환 |
| explode | pandas.DataFrame | 리스트/배열 컬럼을 행으로 분리 |
| filter | pandas.DataFrame | 조건에 맞는 행/열 선택 |
| assign | pandas.DataFrame | 새 컬럼 추가 |
| drop | pandas.DataFrame | 행/열 삭제 |
| drop_duplicates | pandas.DataFrame | 중복 행 제거 |
| duplicated | pandas.Series | 중복 행 여부(Boolean) 반환 |
| sort_values | pandas.DataFrame | 값 기준 정렬 |
| sort_index | pandas.DataFrame | 인덱스 기준 정렬 |
| fillna | pandas.DataFrame | 결측값 채우기 |
| dropna | pandas.DataFrame | 결측값 제거 |
| astype | pandas.DataFrame | 데이터 타입 변환 |
| apply | pandas.DataFrame | 함수 적용 |
| applymap | pandas.DataFrame | 전체 요소에 함수 적용 |
| info | 없음 | DataFrame 요약 정보 출력 |
Series만의 특수 메소드
| 메소드명 | 반환값 타입 | 설명 |
|---|
| to_list | list | Series를 리스트로 변환 |
인덱스 객체
Index 객체는 Series와 DataFrame의 행이나 열의 인덱스 값을 저장하는 객체다.
- 불변(immutable): 한 번 생성된 Index 객체는 일반적인 방법으로 그 값을 변경할 수 없다.
- 배열과 유사: NumPy 배열처럼 동작하며, 순서가 있고 슬라이싱 등 다양한 배열 연산이 가능하다.
- 중복 허용
- 집합 연산 지원: 집합 연산을 지원하여 데이터 병합(merge)이나 조인(join) 등에서 유용하게 활용할 수 있다.
- 슬라이싱 및 검색: Index 객체를 통해 데이터의 특정 행이나 열을 빠르고 효율적으로 검색할 수 있다.
- 이름(name) 속성: Index 객체 자체에 이름을 부여할 수 있다.
- 다양한 타입 지원: 문자열, 정수, 날짜/시간 등 다양한 데이터 타입의 인덱스를 가질 수 있다.