데이터프레임(Data Frame)은 파이썬에서 데이터를 다루기 위해서는 필수적으로 사용하는 자료구조이다.
데이터프레임을 사용하다보면 기초적인 부분이지만 아주 유용하게 쓰이는 부분 몇 가지를 정리하고자 한다.
데이터프레임은 Padnas 라이브러리를 사용하면 대부분의 작업들은 손쉽게 할 수 있다.
개인적으로, 컴퓨터 활용 능력 1급이 있지만... 파이썬으로 데이터프레임을 다루는 것이 훨씬 직관적이고 편리한 것 같다.
읽기
먼저, 가장 기본적인 데이터 프레임을 읽고 쓰는 것이다.
데이터 프레임을 읽는 것 즉, 불러오는 것은 read_csv()
함수를 활용하면 된다.
import pandas as pd
pd.read_csv("{file path and name}.csv", header=None)
pd.read_csv("{file path and name}.tsv", sep="\t")
read_csv()
함수의 기본적인 설정이 csv로 되어있기 때문에 csv 파일의 경우 따로 separator를 지정하지 않아도 괜찮다.
하지만, tsv의 경우 sep
인자를 통해 구분자가 "\t"
(tab)임을 알려주어야 올바르게 출력할 수 있다.
만약, csv파일이라도 ","
(comma)가 아닌 다른 구분자롤 파일 내용이 구분되어있다면 원하는 구분자 (글자도 된다)를 지정해서 옵션을 주면 된다.
위에 보이는 header
옵션의 경우 불러올 파일에서의 첫 줄을 column 명으로 사용하는 여부에 대한 옵션이다.
해당 옵션을 None
으로 주면 첫 줄을 그대로 내용으로 불러오며 column 명은 임의로 숫자를 붙여 나타낸다.
추가로 한글 파일을 열다보면 encoding
오류가 발생하는 경우가 있다.
그런 경우 다음 글을 참고해서 해결하면 된다.
2024.07.07 - [Errors] - UnicodeDecodeError 'utf-8'
저장
데이터 프레임을 저장하는 것은 to_csv()
함수를 사용하면 된다.
당연하게도 데이터 프레임 저장에 앞서 데이터 프레임을 만들어야하는 것은 필수이다.
데이터 프레임의 경우 만드는 방법이 여러가지가 있지만, 개인적으로 나의 경우에는 리스트를 직접 만들어서 사용하는 경우가 대다수이다.
리스트가 다음 코드에서와 같이 2가지가 존재한다고 하면, 각 Column에 대한 이름을 붙여 DataFrame()
함수를 사용해 데이터 프레임을 구성할 수 있다.
유의할 점은, 리스트의 길이가 동일해야 한다는 점이다.
만들어진 데이터프레임은 to_csv()
함수를 통해 저장하면 되는데, 이때 index 함수를 False
로 설정하지 않으면 index 열이 추가된 상태로 저장이 된다.
추가로 역시, 첫 열을 header로 사용하고 싶다면 header=None
옵션을 사용하지 않으면 된다.
import pandas as pd
list1 = ["A", "B", "C"]
list2 = ["a", "b", "c"]
df = pd.DataFrame({"Col1": list1, "Col2": list2})
df.to_csv("{saving directory and file name}.csv", index=False, header=None)
전체 출력
데이터 프레임을 사용하다보면 자주 출력하여 결과를 확인하게 되는 경우가 많다.
그러나, 이때 데이터 프레임이 너무 큰 경우에는 ...
으로 출력되는 문제가 발생한다.
모든 값을 확인하기 위해서는 데이터 프레임의 설정 옵션을 바꿔주는 코드가 필요하다.
모든 열 출력: pd.set_option('display.max_columns', None)
모든 행 출력: pd.set_option('display.max_rows', None)
import pandas as pd
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
pd.read_csv("./서울특별시 은평구_원룸 및 오피스텔 현황_20240704.csv", encoding='cp949')
예시의 데이터 프레임은 row들에 대해서만 전체 출력이 문제였기에, 해당 옵션 적용 후 ...이 아닌 전체로 출력되는 것을 볼 수 있다.
다만, 정말 데이터 프레임이 너무 큰 경우 해당 옵션이 제대로 작동하지 않을 수 있다.
Pandas Cheat Sheet
글을 마무리하면서 추가적으로 도움될 부분은
구글에 pandas cheat sheet라고 검색하면 아주 다양한 pandas 관련 유용한 함수들의 활용법을 정리한 이미지들을 볼 수 있다.
하나쯤 저장해두면 특별한 검색없이 보기 편해서 도움될 사람들은 검색해보는 것을 추천한다.
물론.. 요즘은 Chat-GPT에게 물어보는게 가장 빠를 수도 있지만 말이다.
'Coding Practice > Python' 카테고리의 다른 글
Set (0) | 2024.07.19 |
---|---|
List - 요소 별 Count (0) | 2024.07.16 |
Data Frame - to_list(), tolist() (0) | 2024.07.13 |
Dictionary Slicing (0) | 2024.04.04 |
파이썬 .txt 읽기 - readline(), readlines(), read(), strip() (2) | 2024.02.28 |