728x90
Renaming
- DataFrame의 인덱스 이름, 열이름을 변경할 수 있음
- rename() function을 사용한다
DataFrame.rename(mapper=None, *, index=None, columns=None, axis=None, copy=None, inplace=False, level=None, errors='ignore') 주요 인자
- mapper
- 열이나 행의 이름을 변경할 수 있으며 axis='colums'이면 column을 rename, axis='index'면 row를 rename
- 현재는 mapper 보다 column, index매개변수를 사용하여 axis지정 없이 개별적으로 처리
- index
- 행의 이름을 변경할 때 사용
- columns
- 열의 이름을 변경할 때 사용
- axis
- mapper 인자를 사용할 때 사용하고 index, columns인자를 사용하면 axis는 사용하지 않는다
- axis = 'columns' : 열
- axis = 'rows' : 행
mapper, axis인자를 사용
# 열의 이름을 변경
df.rename(mapper = {'col_name':'changed_col_name'}, axis='columns')
# 행의 이름을 변경
df.rename(mapper = {'index_name':'changed_index_name'}, axis='rows')
columns인자를 사용
df.rename(columns={'col_name':'changed_col_name'})
index 인자를 사용
df.rename(index={'index_name':'changed_index_name'})
행과 열도 각각의 이름을 가질 수 있다
- index열, colums행에 해당하는 부분에 이름을 붙힐 수 있음
- rename_axis()를 사용 (사용 방법은 rename()과 유사)
df.rename_axis('행에 해당하는 열의 이름', axis='rows')
df.rename_axis('열에 해당하는 행의 이름', axis='columns')
df.rename_axis('행에 해당하는 열의 이름', axis='rows').rename_axis('열에 해당하는 행의 이름', axis='columns')
Combining
- 여러개의 df에 대해서 값을 통합하고 싶은 경우 같은 이름을 가지는 열을 기준으로 통합 가능하여 rename()으로 서로 다른 df에서 같은 데이터를 의미하는 열의 이름을 같게 해야한다
- df를 병합하기 위해 concat(), join(), merge() 등등의함수를 사용
pandas.concat(objs, *, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=None) 의 주요 인자
- odj : 병합하고자하는 df를 입력한다 (예: ['df1','df2'])
- axis : df를 index를 기준으로 병합할건지 columns를 기준으로 병합할건지
- axis=0 : index (default)
- axis=1 : columns
- join : 병합 방법
- join='inner' : df1을 기준으로 df들이 공통적으로 가지는 열만 병합한다
- join='outer' : df1을 기준으로 df들이 가지는 모든 열에 대해서 병합한다. 해당되는 열이 없다면 그 부분은 NaN값으로 채워진다
DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False, validate=None) 주요 인자
- 기준df에 join()을 적용한다
- DataFrame : 기준 df / other : 기준 df에 join하고자하는 대상 df
- on : 병합을 할 때 기준으로 사용할 열을 지정한다
- on='key_column_name'
- set_index('col_name')으로 미리 키를 지정해 놓으면 on을 사용하지 않아도 설정한 키값에 대해서 병합을 수행
- how : 병합 방법을 지정한다
- how = 'left' : 기준df의 key열에 존재하는 값에 해당하는 행들만 병합 (df의 데이터의 행 갯수와 병합 후 행 겟수 동일)
- how = 'right' : other로 지정한 df의 key열에 존재하는 값에 해당하는 행들을 병합 (other df의 key 열의 unique한 데이터가 기준df보다 많으면 데이터수가 늘어나고 기존보다 더 적다면 데이터수가 줄어든다. 또한 없는 값에 대해서는 Nan으로 채운다)
- how = 'outer' : 기준df와 other이 가지는 모든 index 대해서 병합
- how = 'inner' : 기준df와 other이 공통으로 가지는 index에 대해서 병합
- how = 'cross' : 두개의 df에 대해서 모든 조합을 만들어낸다
- lsuffix : 중복된 컬럼이 기준 df에 있는 경우 접미사를 지정하여 구분
- 예) lsuffix='_left' --> 'mpg_left'
- rsuffix : 중복된 컬럼이 others에 있는 경우 접미사를 지정하여 구분
- 예) rsuffix='_right' --> 'mpg_right'
끝~
kaggle learn 신기해서 오랜만에 판다스 기초 한번 해봤는데 튜토리얼 기반으로 직접 코드 쓰면서 해보고 다양하게 시도하고 이러니까 더 도움이 되는것 같다. exercise로 한거 테스트까지 완료하면 아주 완벽... 은근히 재밌어서 다른 것들도 킵고잉..다 하고나면 깜찍한 certificate도 준다 (의미는 없어보이지만 그래도...)
pandas홈페이지에 method검색해가면서 하니까 인자들도 어떤거 있는지 확인하고 예시도 다양하게 있어서 함께하면 굿
728x90
반응형
'Python > Pandas' 카테고리의 다른 글
[pandas] 대용량 파일 읽기 (chunksize) (0) | 2024.08.18 |
---|---|
[kaggle learn geopandas] Your First Map (1) | 2024.06.04 |
[kaggle learn pandas] Data Types and Missing Values (0) | 2024.05.30 |
[kaggle learn pandas] Grouping and Sorting (0) | 2024.05.30 |
[kaggle learn pandas] Summary Functions and Maps (0) | 2024.05.27 |