본문 바로가기

데이터 방

판다스로하는 데이터분석 - Series와 DataFrame

반응형

 

약 2달간 'DSschool 이라는 데이터 사이언스 학원에서 <데이터 분석 기초-심화반> 강의를 들었었다. 

수강을 한지 1년이 지났고 관련 분야에 몸을 담고있지도 않지만, 데이터 분석을 처음 배웠을 때 그 세계의 쇼킹함을 지금도 잊지 못하고 있다. 단순히 데이터분석 직종을 알게된 것이 아니라 세상을 바라보는 하나의 세계관을 배운 것이다. 

끊임없이 의심하고 돌아보며, 객관적인 자료와 근거있는 상상력을 동원해 현상을 예측하고 분석하는 과정이 데이터분석의 굉장한 매력포인트다. 꼭 이 분야에서 일하지 않더라도 데이터분석을 배워놓으면 분명 삶의 질 또한 올라가리라 확신한다. 

학원에서 배운 내용을 바탕으로, 기초부터 되짚어보는 과정을 밟아볼까 한다. 안하니 자꾸 까먹는다 ㅠㅠ 

 

 

 

판다스로 하는 데이터분석의 시작, series와 dataframe

 

 

시작하기 전 pandas 패키지를 불러오자.

import pandas as pd # pandas 패키지를 불러오고 이를 pd라는 축약어로 사용한다. 

 

1. 데이터 구조 (data structure) 

series - 데이터 구조의 가장 기본 형태

시리즈라는 단어의 뜻처럼 값들이 나열되어 있는 구조. 파이썬의 리스트 형태와 유사하다. 

판다스 명령어를 사용해 series형태로 변환한다.

number = [1,2,3,4,5]

number라는 변수에 리스트 값을 넣고

pd_number = pd.Series(number)

이 리스트를 Series 형태로 변환하여 pd_number라는 변수에 저장한 뒤 출력하면,

요렇게 결과가 나온다.

판다스가 권장하는 데이터 구조로 만들어줘야 판다스에서 제공하는 기능(명령)을 활용할 수 있다. 

예를 들어 판다스 명령어 중 하나인 dtypes 기능을 사용한다고 해보자. (데이터의 타입을 알려주는 명령어)

a = [1,2,3,4,5]
b = [1.3,11,23]
c = ['메롱','1',3,4]

리스트를 만들어 a,b,c라는 변수에 저장하고 dtype명령어를 실행해보면,

에러가 뜬다. 'list'에는 dtype이라는 명령어가 없기 때문에 실행할 수 없는 것이다. 

리스트 a를 판다스 형태의 series로 변환한 후 aa에 저장하고 dtype명령어를 실행하면 정수(int) 라는 결과를 잘 출력해낸다. 

 

 

데이터프레임 (dataframe) - 판다스의 핵심 데이터 구조 

쉽게 말해 엑셀이나 구글의 스프레드시트, 파이썬의 2차원 리스트 형태와 유사하다. 

number = [ [1,2,3], [4,5,6], [7,8,9] ] 

2차원 리스트를 만들어 number 변수에 저장한 뒤 

pd_number = pd.DataFrame(number) #D와F가 대문자! 은근 잘 실수하는 부분 

판다스의 데이터프레임 구조로 변환 및 pd_number 변수에 저장하여 출력하면

테이블 표처럼 데이터프레임이 만들어진다. (엑셀과 형태가 비슷하죠?) 

그러니까, 여러개의 Series가 묶이게 되면 그게 곧 DataFrame이 되는것이다. 

 

데이터프레임 생성하기

data = [
    ['2020-01-01', 500, 'vip'],
    ['2020-01-03', 700, 'vip'],
    ['2020-01-10', 200, 'silver'],
]

위에서 했듯이, 2차원의 리스트를 만든 후 판다스 명령어를 사용하여 dataframe형태로 만든다. 

data = pd.DataFrame(data)

dataframe을 다루는 방법에 대해서는 따로 정리하도록 하겠다.

*dataframe의 데이터 타입은 어떻게 나올까? 위의 data에 dtype명령어를 실행해보자. 

각 열에 해당하는 행들의 데이터 타입을 결과로 출력해주는 것을 알 수 있다. 

 

2. 데이터 타입 (data type) - 가장 많이 쓰이는 데이터 타입 4개

정수형 integer

1,2,3,11,155 등, int라고 표현한다. 

실수형 float

1,2,3,10.7,1.85 등

문자열 object (파이썬에서는 string이라고 한다)

'메롱', '안녕' 등 텍스트, 따옴표가 들어간다.

불 bool (True/False) 

참 또는 거짓으로 결과가 출력된다. 

 

* 한 시리즈 안에 데이터 타입이 섞여있다면 어떻게 결과가 출력될까?

a = [1,2,3,4,5] # 정수만 
b = [1.3,11,23] # 정수, 소수 섞여있음 
c = ['메롱','1',3,4] # 문자, 숫자 섞여있음 

aa = pd.Series(a)
bb = pd.Series(b)
cc = pd.Series(c)

aa는 정수만 있기 때문에 int로 출력되었다. 

bb는 정수가 있으나 소수점이 섞여있기 때문에 실수(float)로 출력되었다. 

cc의 출력값을 보면 문자, 숫자가 같이 있으면 문자(object)로 출력된다는 것을 알 수 있다. 

 

 

간단하게 판다스의 기초, series와 dataframe에 대해서 정리해보았다. 판다스 기능을 사용하려면 데이터 구조를 판다스의 형태로 만들어줘야 한다는 사실! 꼭꼭 기억하자.

판다스에서 가장 핵심은 dataframe이니 따로 정리를 하면 이것의 배는 분량이 나올 것 같지만, 차근차근 복습하는 심정으로 정리해봐야지. 

반응형