파이썬 판다스로 텍스트 파일 읽기 : read_table()

파이썬 판다스로 텍스트 파일 읽기 : read_table()

파이썬 판다스로 표 형태의 텍스트 파일(데이터 파일)을 불러와서 데이터프레임에 저장한 후, 연산, 데이터 추출, 데이터 가시화 등의 작업을 할 수 있습니다. 물론 엑셀에서도 이런 작업을 모두 할 수 있지만, 데이터를 자동으로 처리하는 데는 판다스가 유리합니다. 이 포스팅에서는 파이썬 판다스로 표 형태의 텍스트 파일을 읽어오는 방법을 알아보겠습니다.


글의 순서

파이썬 판다스로 읽을 텍스트 파일 형태
텍스트 파일을 판다스 데이터프레임으로 만드는 파라미터


파이썬 판다스로 읽을 텍스트 파일 형태

파이썬 판다스 read_table() 함수는 표 형태로 구성된 데이터 파일을 읽을 수 있게 해줍니다. 이번 포스팅에서 다루는 텍스트 파일은 아래 그림과 같이 데이터가 쉼표로 분리된 csv 파일 형태, 공백으로 분리된 형태, tab으로 분리된 형태입니다. 파일 이름은 각각 반복문_시간_csv.txt, 반복문_시간_공백.txt, 반복문_시간_tab.txt입니다.

파이썬 판다스로 읽을 텍스트 파일

데이터는 4행 2열의 표 형태이며, 반복문_시간_공백.txt 파일의 경우 header는 2행에 위치하고 있고, 반복문_시간_tab.txt 파일의 경우 header가 없습니다.

실습코드01은 파이썬으로 표 형태의 텍스트 파일을 불러와서 판다스 데이터프레임 변수 df에 저장하는 코드입니다. 각 파일을 구분하기 위하여 판다스 데이터프레임 변수를 df_csv, df_gap, df_tab으로 구분하였습니다. pd.read_table()이 pandas의 read_table() 함수를 나타냅니다. read_table() 함수의 파라미터는 다음 절에 정리하였습니다. 참고로 header가 없는 텍스트 파일인 반복문_시간_tab.txt 을 읽을 때는, names 옵션으로 열 이름을 지정해 주었습니다.



텍스트 파일을 판다스 데이터프레임으로 만드는 파라미터

pandas의 read_table() 함수로 텍스트파일을 불러올 때 사용할 수 있는 파라미터가 실습코드 보다는 많은데 사용빈도가 높은 파라미터를 정리해 보겠습니다.

▶ io
텍스트 파일이 있는 경로. 만약 웹 상에 있다면 url을 지정합니다.
여기서, url은 웹 주소를 의미합니다.

▶ sep
한 행에서 각 열 사이의 구분을 쉼표(comma(,))로 한 경우, 그냥 공백인 경우, tab으로 분리된 경우로 나눌 수 있습니다. 각각 sep=‘,’, sep=‘\+s’, sep=’\t’으로 지정합니다.

▶ encoding
파일에서 글자를 읽어올 때, 어떤 방식으로 읽을 것인지를 지정할 수 있습니다. 마이크로소프트 오피스(MS Office)에서 저장한 파일을 읽을 때는 ‘cp949’, 나머지 대부분은 ‘utf-8’입니다. ‘utf-8’일 경우 encoding을 생략해도 됩니다.

▶ header
열 이름으로 사용할 행을 지정합니다. 별도 지정하지 않으면 첫 행을 열 이름으로 지정합니다. 만약 header가 없다면 header=None 이라고 씁니다.

▶ names
열 이름을 리스트 형태로 지정할 수 있습니다.


마치며 …

이 포스팅에서는 파이썬 판다스로 표 형태의 텍스트 파일을 읽어오는 방법을 알아보았습니다. 표 형태의 텍스트 파일(데이터 파일)을 불러와서 연산, 데이터 추출, 데이터 가시화 등의 작업을 하는 것은 엑셀에서도 가능합니다만, 판다스로 불러오게 되면 파이썬이라는 코딩 언어가 가진 장점을 최대한 활용할 수 있습니다. 특히 자동화할 때 유리합니다. 이번 포스팅의 판다스 read_table()을 유용하게 사용하시기 바랍니다.

 

 

함께 참고하면 더 좋은 글 :
파이썬 판다스로 엑셀 파일의 원하는 부분 골라 읽기
시계열 데이터 분석 : pandas CSV 파일 저장, 읽기
시계열 데이터 전처리 결과 확인 : pandas Series
시계열 데이터 전처리 결과 확인 : pandas DataFrame
파이썬 데이터 분석! 데이터 분석을 위한 코딩언어 파이썬


참고자료

pandas, IO tools (text, CSV, HDF5, …)

Leave a Comment