zenn.skin 무료버전 배포중!
자세히보기

Python/Syntax

[Pandas] DataFrame 열 순서 변경

koosco! 2022. 6. 8. 01:03

DataFrame의 열 순서를 변경하는 메소드는 별도로 없어서 열 순서를 변경하는 방법을 정리해보려 합니다.

 

1. 열의 순서를 직접적으로 변경

exam_data = {'수학': [90, 80, 70], '영어': [98, 89, 95],
            '음악': [11, 22, 33], '체육': [44, 55, 66]}
exam_data = pd.DataFrame(exam_data)
col = ['체육', '수학', '영어', '음악']
exam_data = exam_data[col]

열의 순서를 직접 설정하여 변경하는 방법입니다. 열의 개수가 많지 않으면 사용할 수 있지만 개수가 많아지면 사

용하기 힘들다는 단점이 있습니다.

2. reindex를 이용한 방법

exam_data = {'수학': [90, 80, 70], '영어': [98, 89, 95],
            '음악': [11, 22, 33], '체육': [44, 55, 66]}
exam_data = pd.DataFrame(exam_data)
col = ['체육', '수학', '영어', '음악']
exam_data.reindex(columns=col)

첫번째 방법과 거의 동일한데 reindex 메소드를 사용한 방법입니다.

 

3. 열을 추출한 후 직접 변경

exam_data = {'수학': [90, 80, 70], '영어': [98, 89, 95],
            '음악': [11, 22, 33], '체육': [44, 55, 66]}
exam_data = pd.DataFrame(exam_data)

col_list = exam_data.columns.to_list() # 열 -> list
col_list2 = list(exam_data.columns.values) # 열 -> np.ndarray -> list

col = [col[3]] + col[:3]
exam_data = exam_data[col]

- DataFrame.columns.to_list(): 리스트 형태로 반환

- list(DataFrame.columns.values): columns.values는 열을 ndarray형태로 반환합니다. list를 취해 리스트로 변환한 후 사용합니다.

 

열을 리스트 형태로 추출한 후 슬라이싱 등 가공을 하여 순서를 변경한 후 첫번째 방법과 같이 다시 선언해주는 방법입니다.

 

4. insert를 이용한 방법

exam_data = {'수학': [90, 80, 70], '영어': [98, 89, 95],
            '음악': [11, 22, 33], '체육': [44, 55, 66]}
exam_data = pd.DataFrame(exam_data)

exam_data.insert(0, '체육', exam_data.pop('체육'))

DataFrame.insert를 사용하는 방법입니다. 첫번째 인자로 삽입할 위치를, 두번째 인자로 삽입할 열의 이름을 매개변수로 전달하고 마지막 인자로 DataFrame.pop을 이용해 기존의 인자를 없애주는 방법입니다.

코드가 깔끔하지만 한 개의 열씩 변경할 수 있는 단점이 있습니다.

 

직접 찾아보기도 하고 Stackoverflow에서도 찾아봤는데, 이외에도 혹시 다른 방법이 있다면 알려주시면 감사하겠습니다 :)

'Python/Syntax'의 다른글

  • 현재글 [Pandas] DataFrame 열 순서 변경

관련글