본문 바로가기
컴퓨터/Python

[pandas] 파이썬 판다스를 활용한 컬럼 정렬

by HanJoohyun 2018. 2. 5.
반응형

 

 

안녕하세요 한주현입니다


오늘은 파이썬 판다스를 활용하여 컬럼간 정렬하는 방법에 대해 알아보겠습니다




준비물


1) 파이썬 판다스

https://pandas.pydata.org/


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를 활용하여 컬럼 정렬하는 방법에 대해 알아보았습니다


여러분들께 도움이 되셨음 좋겠네요 ㅎㅎ


그럼 다음 포스팅에서 만나요~ !

 


반응형

댓글