[Python] 판다스 (Pandas) - 데이터프레임 (DataFrame)
이 글은 판다스의 데이터프레임을 다루는 방법에 관한 기록입니다.
pd.set_option('display.max_rows, None'): 데이터프레임의 모든 행 출력pd.set_option('display.max_columns, None'): 데이터프레임의 모든 열 출력
Attributes
df.index: 데이터프레임의 인덱스(row label) 반환-
df.columns: 데이터프레임의 컬럼명(column label) 반환 df.ndim: 축의 개수를 나타내는 int 반환- Series일 때 1 반환
- DataFrame일 때 2 반환
df.size: 데이터프레임의 요소들의 개수를 나타내는 int 반환- Series일 때 행의 개수 반환
- DataFrame일 때 행의 개수 x 열의 개수 반환
-
df.shape: 데이터프레임의 차원을 나타내는 tuple 반환 :(행의 개수, 열의 개수) -
df.dtypes: 데이터프레임 내 컬럼 별 데이터 타입 반환 -
df.values: 데이터프레임에 대한 numpy 표현 즉 array 반환 df.iloc: 위치를 나타내는 integer를 통해 데이터 프레임 인덱싱df.loc: Access a group of rows and columns by label(s) or a boolean array. label 혹은 boolean array를 통해 데이터프레임 인덱싱
Methods
-
df.copy():df를 복사 df.head(n): 위에서부터 n개의 행을 반환df.tail(n): 아래에서부터 n개의 행을 반환df.info(): 데이터프레임에 대한 간결한 요약 출력df.nunique(): 데이터프레임 내 unique한 값들의 개수 반환-
df.unique(): 데이터프레임 내 unique한 값들 반환 df.describe(): 기초통계량df.max(): 최대값df.mean(): 평균값df.median(): 중앙값-
df.min(): 최소값 df.pivot()-
df.pivot_table() df.apply()df.agg()df.aggregate()-
df.grooupby() -
df.replace() df.sort_values(by, axis={0, 1}, ascending={True, False}, inplace={True, False}): 데이터프레임 정렬axis=0/axis=index일 때by: index levels 혹은 column labelsaxis=1/axis=columns일 때by: column levels 혹은 index labelsascending=True: 오름차순 정렬 (default)ascending=False: 내림차순 정렬
-
df.value_counts() df.isna(): 결측치 확인df.isnull(): 결측치 확인df.notna(): 결측치 확인df.notnull(): 결측치 확인df.dropna(axis={0, 1}, inplace={True, False}): 결측치 제거-
df.fillna(value=None, axis=None, inplace={True, False}): 결측치 대체 df.duplicated(subset=['COL1', 'COL2', ...], keep={‘first’, ‘last’, False}): 중복 데이터 확인-
df.drop_duplicates(subset=['COL1', 'COL2', ...], keep={'first', 'last', False}, inplace={True, False}): 중복 데이터 제거 df.drop(labels=None, index=None, columns=None, axis={0, 1}, inplace={True, False}): 행 또는 열을 제거labels=[ROW1, ROW2, ... ], axis=0/index=[ROW1, ROW2, ...]: 행 제거labels=[COL1, COL2, ... ], axis=1/columns=[COL1, COL2, ...]: 열 제거
df.rename(mapper=None, index=None, columns=None, axis={0, 1}, inplace={True, False}): 축 이름 변경mapper={OLD1:NEW1, OLD2:NEW2, ...}, axis=0: 인덱스(row label) 변경index={OLD1:NEW1, OLD2:NEW2, ...}: 인덱스(row label) 변경mapper={OLD1:NEW1, OLD2:NEW2, ...}, axis=1: 컬럼명(column label) 변경columns={OLD1:NEW1, OLD2:NEW2, ...}: 컬럼명(column label) 변경
df.reset_index(drop=False, inplace=False): 인덱스 재설정-
df.set_index(keys, drop=True, append=False, inplace=False): 인덱스 설정 df.to_pickle(): pickle 형태로 저장df.to_csv(): csv 파일로 저장
댓글남기기