Sun.El Data Analysis

[판다스] 데이터프레임 칼럼명, 인덱스 다루기 본문

Pandas

[판다스] 데이터프레임 칼럼명, 인덱스 다루기

Sun.El 2023. 7. 4. 23:53
728x90

1.  칼럼명 변경

칼럼명은 데이터프레임의 열의 명으로 데이터프레임에서 name 또는 columns으로 지칭됨

  • df.rename
    - 현재 칼럼명을 새로운 칼럼명으로 각각 변경함
df.rename(columns = {'old_nm' : 'new_name', inplace=True}

 

  • df.columns 
    - 칼럼명을 새롭게 부여함
df.columns = ['a', 'b']

 

2. 인덱스 변경

인덱스는 데이터프레임의 행의 명으로 데이터프레임에서 index로 지칭됨

  • pd.DataFrame(칼럼명, index = []) : 데이터프레임 생성시 원하는 index 부여하기
    - 데이터프레임을 만들 때 df.DataFrame의 파라미터으로 index = [ ]를 지정해줌
    - list 함수로 가동해주지 않으면 대기상태를 유지함
df = pd.DataFrame({"name":name_list, "math":math_list, "class": class_list}, index = ['철수','영희'])

 

  • df.set_index : 내가 원하는 칼럼을 index 지정해주기
    - 컬럼명을 지정하고 drop, append, inplace 파라미터를 사용 할 수 있음
df.set_index("name", drop = True, append = False, inplace=True)
#"name"  : df 내에 있는 index로 지정하기 원하는 칼럼명
#append  : 기존 index에 내가 원하는 칼럼까지 추가해서 인덱스를 만들지 묻는 것
#inplace : 원본 데이터에 덮어씌울지를 물어 보는 것, True인 경우 index가 바뀐 것을 바로 원본에 적용함

      - 중복되는 값이라 할지라도 index로 만들 수 있음

인덱스 중복 허용 예시

  • df.reset_index : 인덱스 초기화 
df.reset_index(drop = False, inplace = True)
#drop : 기존의 index를 버릴지 말지 결정함

 

  • df.index : 인덱스 데이터 추출 
df.index

 

df.index 결과

 

  • df.index = [ ] : 새로운 list를 인덱스로 부여하고 인덱스로 조작
    - list를 index로 부여할 수 있음
name_list = ['박명수', '유재석', '노홍철', '길', '정준하', '정형돈', '하하']
df.index = name_list

 

결과

  • df.index.name : 인덱스 이름 부여
    - 기존 index에는 이름이 없었으나 name을 붙여 index의 이름을 부여함
    - df.index 뒤에는 다른 함수들을 붙여 추가적인 기능을 실행할 수 있음
df.index.name = "name"

 

 

  • df.set_index(['class','name']) : 멀티 인덱스
    - 멀티인덱스는 말 그대로 index를 한번에 여러개 사용하는 방법
    - 이름을 칼럼으로 되돌리고, class, name으로 멀티 인덱싱을 해봄
    - 멀티인덱싱은 set_index(column)에서 여러 칼럼을 넣어서 실시할 수 있음
    - 멀티인덱싱은 데이터 형태를 보다 쉽게 파악할 수 있다는 장점이 있음
    - group_by를 하여 두 집단 이상의 통계량을 볼 때 출력하게 됨
    - 멀티인덱싱을 하면, class는 하나의 index처럼 뭉친 것처럼 보이는데, 실제로는 개별로 떨어져 있음
df.reset_index(drop = False, inplace = True)
df.set_index(['class','name'], inplace = True)

 

멀티인덱싱 결과
멀티인덱싱 결과

        - 멀티인덱스의 해제는 reset_index()를 통해 할 수 있음

멀티인덱싱 해제 결과

 

  • df.sort_index : 인덱스 기준 정렬
    - 인덱스가 정리가 되지 않았을 시 깔끔하게 정리함
df.sort_index(inplace = True, ascending = True)
##기본적으로 오름차순 정렬