1. Pandas란 무엇일까?
Python으로 데이터분석을 한다고 할때, Pandas는 절대로 빠질 수 없는 모듈입니다. 모든 데이터 처리가 Pandas의 Dataframe과 Series로 이루어지기 때문에 데이터분석을 하고 싶다면 꼭 알아두어야할 모듈입니다. 데이터 분석 뿐만 아니라 대부분의 데이터를 Dataframe으로 제공하기 때문에 어쩌면 Python 사용자라면 필수로 알고 넘어가야하는 부분이라고 생각합니다.
DataFrame은 데이터를 유연하게 처리하거나, 마치 엑셀의 시트를 하나의 데이터 타입으로 만들어 놓은 느낌입니다. 그래서 앞으로 Python Pandas에서 DataFrame과 Series를 생성하고 데이터를 읽고, 파일로 저장하며 행 또는 열을 선택하거나 삭제, 수정하는 방법과 더불어 활요하는 방법에 대해 이야기를 할 예정입니다.
일단 오늘은 가볍게 Pandas를 이해하고 파일에서 데이터를 불러오는 방법에 대해 소개해드리겠습니다.
※ Python Pandas는 Anaconda를 통해서 Python을 설치했다면 기본적으로 모듈이 설치되었고 없다면 pip를 통해서 설치해주어야합니다.
Pandas 불러오기
import pandas as pd #pandas를 pd라고 부르기로 약속
관례적으로 Pandas는 pd라는 이름으로 선언합니다.
N O T E Pandas의 기능
pd. + tab # 팬더스에서 쓸 수 있는 다양한 기능을 확인할 수 있다.
'pd.'을 입력한 후 tab키를 누르면 위와 같이 Pandas에서 사용할 수 있는 function과 다양한 class를 확인할 수 있습니다.
Series를 이용하여 DataFrame 만들기
s1 = pd.core.series.Series([1,2,3])
s2 = pd.core.series.Series(['one', 'two', 'three'])
df = pd.DataFrame(data=dic(num = s1, word = s2))
s1과 s2는 각각 Series로 이러한 Series가 모여 Dataframe을 이룹니다. Python의 함수중 데이터의 타입을 확인하는 type() 함수를 통해 좀 더 자세히 확인해 보겠습니다.
위에서 정의한 df는 위와 같은 DataFrame입니다. 여기서 num과 word라는 컬럼의 data type을 확인해보면 다음과 같습니다.
이를 통해 DataFrame은 Series 들의 결합체라고 할 수 있음을 알 수 있습니다!
2. Pandas tutorial - 파일에서 데이터 불러오기
파일에서 데이터 불러오기
import pandas as pd # csv 파일 불러오기
df = pd.read_csv('file_address/file_name.csv')
df
파일을 읽어오려면 read_csv 함수를 이용하여 파일을 불러옵니다. read_csv 함수 안에는 파일 경로와 읽어야 하는 파일명을 입력합니다. 이러한 read_csv 함수는 쉼표(,)로 구분된 csv 파일 뿐만 아니라 txt파일도 읽어올 수 있습니다.
df = read_csv('database/friend_list.txt')
df
저는 위 friend_list라는 txt파일이 database라는 폴더에 위치해 위와 같은 방법으로 파일을 불러와 df에 저장했습니다. 위 코드를 실행하면 다음과 같은 Dataframe을 확인할 수 있습니다.
N O T E 데이터 미리보기
지금은 데이터가 5개 밖에 안되지만 우리가 접하는 데이터는 몇백, 몇천 아니 어쩌면 그보다 더 큰 데이터를 접하게 됩니다. 그럴 때 데이터를 일부 몇개만 볼 수 있는 방법이 있습니다.
df.head() # 상위 5개 df.head(n) # 상위 n개
위에서 사용한 head() 는 데이터의 상단에서 부터 일부 데이터를 볼 수 있는 함수 입니다. defualt 값은 5이기 때문에 아무 숫자를 입력하지 않아도 상위 5개의 데이터를 볼 수 있습니다. 만약 3개의 데이터만을 보고 싶다면 df.head(3) 을 실행하면 3개의 데이터를 확인할 수 있습니다.
df.tail() # 하위 5개 df.tail(n) # 하위 n개
같은 방법으로 tail() 을 통해 가장 하단에 있는 데이터 일부를 확인할 수 있습니다.
delimiter 옵션을 통한 구분자 설정
근데 데이터가 항상 콤마(,)로 구분되지는 않습니다. 예를 들어 콤마 다음으로 가장 대중적으로 이용되는 방법이 tab으로 구분되는 경우 입니다. 이럴땐 어떻게 하면 될까요?
일단 위에서 배운대로 불러왔더니 결과가 조금 다르게 나옵니다. 결과에서 볼 수 있는 '\t'는 tab으로 구분되었다는 표시로 option을 통해 구분자를 tab으로 바꿔줘야 합니다.
df = pd.read_csv('database/friend_list.txt', delimiter='\t')
df
위와 같이 delimiter='구분자'를 입력하면 아까 봤던 DataFrame 형태로 출력됨을 확인 할 수 있습니다.
Column정보가 없는 데이터 읽기
앞에서 읽었던 txt 데이터를 다시 한번 보겠습니다.
첫째줄을 보면 name, age, job이라는 column명이 표시 되어있었습니다. 그런데 데이터가 항상 이렇게 친절하지는 않습니다. 그렇다면 만약 column정보가 없는 데이터를 위에서 배웠던 방법으로 읽게 되면 어떻게 될지 한번 보겠습니다.
이처럼 column 정보가 없는 데이터를 읽어오면 인덱스가 그자리를 대신해주고 있습니다. 그렇다면 column 정보는 어떻게 넣어주면 될까요?
df.columns = ['name', 'age', 'job']
df
위 처럼 columns에 column list를 넣어주면 column 정보가 담긴 DataFrame을 만들 수 있습니다. 하지만 이보다 더 편하게 column정보를 입력할 수 있는 방법이 있습니다.
df = pd.read_csv('database/friend_list.txt', names = ['name', 'age', 'job'])
df
이처럼 처음 데이터를 읽어올때 names 옵션에 column list를 입력해주면 column정보가 담긴 DataFrame을 만들 수 있습니다.
이번 글에서는 Pandas, DataFrame, Series가 무엇인지 간략하게 살펴보고 이를 바탕으로 파일을 불러고는 것 까지 해보았습니다. 다음 글에서는 파일을 부르는 대신 Pyhton에서 DataFrame을 만들고 이를 저장하는 방법에 대해 소개해드리겠습니다.
'Study > Python' 카테고리의 다른 글
[Python]Pandas basic 파이썬 판다스 기초 : 데이터 그룹 만들기, 중복 데이터 삭제 (0) | 2021.08.12 |
---|---|
[Python]Pandas basic 파이썬 판다스 기초 : 행,열 생성 및 수정하기 (1) | 2021.07.14 |
[Python]Pandas basic 파이썬 판다스 기초 : 행,열 삭제 (0) | 2021.06.30 |
[Python]Pandas Basic 파이썬 판다스 기본 : 데이터프레임 다루기 (0) | 2021.06.28 |
[Python] pandas basic 파이썬 판다스 기본 : DataFrame 만들기, 저장하기 (0) | 2021.06.23 |