프로그래밍/파이썬

EDA - 1단계 : 데이터 다루기 - 축, 레이블

매 석 2023. 7. 17. 19:45
반응형

- 과거 내용

 

EDA - 1단계 : 데이터 다루기 - 확인

과거내용 DataFrame - 데이터타입 1. 타입 변경 astype을 사용해서 특정 열의 타입을 바꾸었다. dtype&#x...

blog.naver.com

 

- DataFrame - 축, 레이블

 

1. 행-열 교환

#원본 데이터
     col1 col2
row1    A    B
row2    1    2

#행, 열 교환
print(df.swapaxes(axis1=0,axis2=1))

     row1 row2
col1    A    1
col2    B    2

 

swapaxes를 사용해서 행과 열을 교환할 수 있다.

0은 index를, 1은 columns를 의미한다.

2. 레이블명 변경

#원본 데이터
     col1 col2
row1    A    B
row2    1    2

#레이블명 변경
print(df.rename(index={'row1':'ROW1','row2':'ROW2'}))

     col1 col2
ROW1    A    B
ROW2    1    2

 

rename을 이용해서 레이블명을 변경할 수 있다.

index, columns를 동시에 바꿀 수도 있다.

3. 축 이름 변경

#원본 데이터
     col1 col2
row1    A    B
row2    1    2

#축 이름 변경
print(df.rename_axis(index='TEST2',columns='TEST'))

TEST  col1 col2
TEST2
row1     A    B
row2     1    2

 

4. 인덱스 설정

#원본 데이터
     col1 col2
row1    A    B
row2    1    2

#인덱스 설정
print(df.set_index(keys='col1',append=True))

          col2
     col1
row1 A       B
row2 1       2

 

set_index를 사용해서 인덱스를 설정할 수 있다.

설정한 keys 값을 입력하고, append를 True로 하면, 원래 인덱스에 추가되고,

False로 하면 설정한 keys 값만 인덱스로 설정된다.

5. 레이블명 변경

#원본 데이터
     col1 col2
row1    A    B
row2    1    2

#레이블명 변경
print(df.set_axis(labels=['ROW1','ROW2'],axis=0))

     col1 col2
ROW1    A    B
ROW2    1    2

 

set_axis를 사용해서 레이블명을 변경할 수 있다.

labels에 설정한 레이블명을 입력하고 axis에서 행과 열 중 선택을 하면 된다.

6. 접미사, 접두사

#원본 데이터
     col1 col2
row1    A    B
row2    1    2

#접미사, 접두사
print(df.add_suffix('_TEST'))
print(df.add_prefix('TEST_'))

     col1_TEST col2_TEST
row1         A         B
row2         1         2
     TEST_col1 TEST_col2
row1         A         B
row2         1         2

 

suffix를 사용하면 뒤에 붙고, prefix를 사용하면 앞에 붙는다.

이런 식으로 열 이름을 추가할 수 있다.

7. 인덱스 변경

#원본 데이터
     col1 col2
row1    A    B
row2    1    2

#인덱스 변경
print(df.reindex(columns=['col1','col2','idx'],method='ffill'))

     col1 col2 idx
row1    A    B   B
row2    1    2   2

 

reindex를 통해 인덱스를 변경할 수 있다. columns에 값을 입력하고

만약 그 전 인덱스와 겹치면 그 값이 그대로 따라오지만, 새로운 인덱스라면

기본적으로 NaN값을 가지게 된다. 이를 method를 통해서 채우거나,

fill_value를 통해서 채울 수 있다.

8. 인덱스 변경

#원본 데이터
     col1 col2
row1    A    B
row2    1    2
     col1 col2
row0    a    b
row2   10   20

#인덱스 변경
print(df.reindex_like(other=df2,method='bfill'))

     col1 col2
row0    A    B
row2    1    2

 

reindex_like를 통해서 다른 데이터프레임의 인덱스로 변경할 수 있다.

겹치지 않는 부분의 경우는 NaN 값이 들어간다. 그렇기에

method를 활용해서 그 값을 채워넣어줄 수 있다.

9. 인덱스 초기화

#원본 데이터
     col1 col2
row1    A    B
row2    1    2

#인덱스 초기화
print(df.reset_index(drop=True))

  col1 col2
0    A    B
1    1    2

 

reset_index를 통해서 index를 초기화할 수 있다.

drop 옵션을 True로 한 경우 원래 인덱스까지 삭제시킨다.

inplace를 True인 경우 원본까지 바뀌게 된다.