안녕하세요 한주현입니다
오늘은 파이썬 판다스를 활용하여 컬럼간 정렬하는 방법에 대해 알아보겠습니다
준비물
1) 파이썬 판다스
2) 헤더가 있고 행과 열로 구성된 데이터
*) 모든 소스코드와 샘플 데이터는 다음 링크에서 받으실 수 있습니다
https://github.com/KennethJHan/PandasColumnSorter
기본 원리
판다스에서는 행과 열로 구성된 데이터를 엑셀 테이블 처럼 다룰 수 있는 DataFrame이라는 객체에 담을 수 있습니다
0) pandas를 import 합니다
1 | import pandas as pd | cs |
1) data 파일을 읽습니다. panadas의 method 중 read_csv 라는 메서드를 사용합니다.
여기서는 구분자가 comma 인 경우를 예를 들었으며 sep="," 로 인자를 넣어 줍니다.
(넣지 않으면 sep="," 가 기본적으로 들어가게 됩니다)
만약 tab으로 구분 되어있다면 sep="\t" 를 인자로 넣어줍니다.
1 2 | # comma로 구분된 File.txt 라는 파일을 읽어 df(dataframe) 객체에 저장합니다. df = pd.read_csv("File.txt", sep=",") | cs |
2) dataframe에 리스트를 붙여 쓰게 되면 그 순서대로 컬럼이 정렬되어 dataframe을 반환합니다.
이러한 점을 이용하여 리스트에 우리가 원하는 컬럼 순서와 컬럼명을 넣게 되면 정렬과 골라내는 것이 가능하게 됩니다.
1 2 | # df 객체에 컬럼 순서 리스트를 넣어주면, 리스트의 순서대로 dataframe의 컬럼을 정렬 또는 뺄 수 있습니다. df = df[columnList] | cs |
3) 마지막으로 출력을 진행해보겠습니다.
그냥 df를 출력해도 되지만, 우리는 dataframe을 문자열로 받고 인덱스 번호를 없애고 출력해보겠습니다.
1 2 3 | # df.to_string(index=False)를 사용하면 dataframe을 출력 할 수 있습니다. # index=False 를 사용하면 맨 앞 컬럼에 자동 생성되는 인덱스 번호를 빼고 출력 할 수 있습니다 print(df.to_string(index=False)) | cs |
*) 전체 스크립트
1 2 3 4 5 6 7 8 9 10 11 | import pandas as pd # comma로 구분된 File.txt 라는 파일을 읽어 df(dataframe) 객체에 저장합니다. df = pd.read_csv("File.txt", sep=",") # df 객체에 컬럼 순서 리스트를 넣어주면, 리스트의 순서대로 dataframe의 컬럼을 정렬 또는 뺄 수 있습니다. df = df[columnList] # df.to_string(index=False)를 사용하면 dataframe을 출력 할 수 있습니다. # index=False 를 사용하면 맨 앞 컬럼에 자동 생성되는 인덱스 번호를 빼고 출력 할 수 있습니다 print(df.to_string(index=False)) | cs |
columnList 는 여러분들께서 원하는 컬럼 명들로 정해주세요 ㅎㅎ
사용 예
1) pandas 메서드 중 read_csv 로 파일을 읽는 방법입니다.
DataFrame을 그냥 출력해보면 index 번호가 같이 출력됨을 확인 하실 수 있습니다.
2) columnList 에 우리가 원하는 순서대로 컬럼명을 넣었습니다.
그리고 DataFrame 메서드 중 to_string 메서드에 index=False를 사용하여 DataFrame을 출력해보았습니다.
GitHub에 공유한 코드를 참조
본 포스팅에 대한 소스코드와 예제 파일들을 담아 놓은 github 페이지가 다음 URL에 있습니다.
https://github.com/KennethJHan/PandasColumnSorter
오늘은 pandas를 활용하여 컬럼 정렬하는 방법에 대해 알아보았습니다
여러분들께 도움이 되셨음 좋겠네요 ㅎㅎ
그럼 다음 포스팅에서 만나요~ !
댓글