History
home
BDA 연혁
home

- 다양한 데이터 형태 전처리 복습 (1)

판다스(pandas)를 활용한 전처리 복습

데이터 프레임(DataFrame) 객체

데이터 테이블 전체를 지칭하는 객체
넘파이 배열의 특성을 그대로 가짐
인덱싱은 열과 행을 각각 사용하여 하나의 데이터에 접근

데이터 전처리에 필요한 기초 문법들

1.
query() : 데이터프레임에서 조건에 맞는 데이터를 필터링 - 예시: df.query('age > 30')age 컬럼이 30 초과인 모든 행을 반환
2.
[], [[]]: []는 단일 컬럼을 선택하고, [[]]는 여러 컬럼을 선택 - 예시: df['age']age 컬럼을, df[['age', 'name']]agename 컬럼을 선택
3.
sort_values() : 데이터를 특정 컬럼 기준으로 정렬 - 예시: df.sort_values('age')age 컬럼을 기준으로 오름차순 정렬
4.
groupby(): 데이터를 그룹화하여 집계, 변환, 필터링을 수행 - 예시: df.groupby('gender').mean()gender에 따라 데이터를 그룹화하고, 각 그룹의 평균을 계산
5.
assign(): 새로운 컬럼을 추가하거나 기존 컬럼을 수정 - 예시: df.assign(new_column=lambda x: x['age'] * 2)age 컬럼의 두 배 값을 가지는 새로운 컬럼을 추가
6.
merge(): 두 데이터프레임을 특정 컬럼을 기준으로 병합 - 예시: df1.merge(df2, on='user_id')는 두 데이터프레임을 user_id 컬럼을 기준으로 병합
7.
agg(): 다양한 집계 함수를 한 번에 적용하여 요약 통계를 계산 - 예시: df.agg({'age': ['min', 'max'], 'salary': 'mean'})age의 최소값과 최대값, salary의 평균을 계산
8.
concat(): 데이터프레임을 행이나 열 방향으로 연결 - 예시: pd.concat([df1, df2])는 두 데이터프레임을 행 방향으로 연결
9.
loc, iloc: loc는 레이블을 기준으로 행 또는 열을 선택하고, iloc는 위치를 기준으로 선택 - 예시: df.loc[0, 'age']는 0번째 행의 age 컬럼 값을, df.iloc[0, 1]은 0번째 행의 1번째 컬럼 값을 선택
10.
str(): 문자열 데이터를 처리하는데 사용 - 예시: df['name'].str.upper()name 컬럼의 모든 문자열을 대문자로 변환

그룹별 집계(group by) 개념

데이터를 일정한 기준에 따라 그룹별로 분리하여 각 그룹에 대해 집계, 변환, 필터링 등의 연산을 수행할 수 있는 함수이다. SQL의 GROUP BY, 엑셀의 피봇테이블(pivot table)과 유사하게 작동한다
group by() 메서드는 분할(split)-적용(apply)-결합(combine)의 과정을 거친다.
분할(split)은 같은 종류의 데이터끼리 나누는 기능
적용(apply)은 그룹된 데이터마다 sum(),mean(),count() 등의 집계연산을 수행한다.
결합(combine)은 연산 함수가 적용된 각 그룹들을 합치는 기능이다.
위 과정을 그림으로 설명하면 다음과 같다.