데이터 사이언스(Data Science)/데이터 분석, 자료분석(Data)

[Python] pandas tutorial, 판다스 기본 알아보자

게임이 더 좋아 2020. 7. 9. 13:41
반응형
728x170

나는 이걸로 했다.

pandas는 데이터를 시각화 하기에 좋은 도구라고 알려져있다.

그렇지만 단독으로는 안 쓰이고 Numpy, matplotlib, scikit-learn 등 다른 라이브러리랑 같이 쓰인다.

 

오픈소스로 누구나 무료로 이용할 수 있어 인기가 많아지는 라이브러리 중 하나이다.

 

import 할 떄는 보통 "import pandas as pd" 로 하므로 pd.xxxx가 붙으면 pandas 라이브러리의 뭔가를 쓰나보다?

라고 생각하면 되겠다. 

 

 


 

 

1. pandas의 2가지 자료구조

 

Series와 DataFrame이 있다. 뭐 만능은 아니지만 알아야 뭔가를 하니까 알아놓자

 

Series는 일련의 객체를 담을 수 있는 1차원 배열 같은 자료구조를 말한다.

++어떠한 NumPy 자료형이라도 담을 수 있다.

 

색인(index)라고 하는 배열의 데이터와 연관된 이름을 가지고 있다. 

가장 간단한 Series 객체는 배열 데이터로부터 생성할 수 있다.

 

살짝 예를 보면

 

 

 


In [11]: obj = pd.Series([4, 7, -5, 3])

 

In[12}: obj

Out[12]:

0   4

1   7

2  -5

3   3

dtype: int 64 #64비트 정수형

 

# 여기서 In은 그냥 Line이라고 보면 된다. 

pd.Series로 객체를 생성했고 그 객체를 1차원 배열 같은 존재??

아니 그냥 보기엔 배열이다.


 

 

 

 

Series 객체의 문자열 표현은 왼쪽에 색인(index)를 보여주고 오른쪽에 해당 색인(index)의 값을 보여준다.

 

++0이 색인이고 4가 그 색인에 해당하는 값이다.

++index를 지정해주지 않으면 자동으로 0부터 시작한다.

 

 

그렇다면 값만 알고싶다?? 혹은 인덱스의 범위를 알고 싶다??

.values

.index

 

 

 

 


In[13]: obj.values

Out[13]: array([4, 7, -5 ,3])

 

In[14]: obj.index

Out[14]: RangeIndex(start=0, stop=4, step=1)

 

#이렇게 된다. 파이썬 많이 해보면 익숙해질거란다.

나도 익숙해지겠지..?

 


 

 

 

사실 여기까지가 기본이고 더 알아보는 것은 배우는 사람의 몫

 

더 배울것은 아래정도..?

 

1. Series 객체를 생성할 때 value와 index를 직접 지정해줄 수 있고 꼭 index가 숫자가 아니어도 된다.

2. 리스트처럼 객체 a가 있고 index 'b'가 있다면  a['b']   이렇게 하면 해당하는 값이 나온다.

3. 연산을 할 때 obj>0인 경우 색인을 따지는 것이 아닌 value를 따져서 0 이상의 값이 나온다.

 

쓰다 보면 익숙해진단다.

 

파이썬의 dictionary랑 비슷하네 key, value가 있는 느낌??? 근데 다르니까 따로 썼겠지ㅎㅎ

 

 

 

 

++

 

pandas에서 값이 없는 경우 NaN으로 나타나는 경우가 있는데 Not a Number란 뜻이다.

 

isnull()

notnull() 

그래서 missing value(결측치)를 확인하고자 할 때 쓰기도 한다.

 

이정도로 Series기본은 마치자 ㅎㅎ

 

다음은 DataFrame

 

 


 

DataFrame 은 표 같은 스프레드시트 형식의 자료구조이고 여러 개의 컬럼(column)이 있는데 각 컬럼은 서로 다른 종류의 값(숫자, 문자열, boolean)을 담을 수 있다.

 

DataFrame은 row, column에 대한 색인(index)를 가지고 있다. // 그냥 matrix라고 보면 된다.

 

뭔지 모르니까 예를 통해 이해해보자

 

 


#너무 많으니까 3개만 써보자

 

data = {'state': ['Ohio', 'Ohio', 'Nevada'], 'year' : [2000, 2001, 2002], 'pop' : [1.5 , 1.7, 2.4]}

frame = pd.DataFrame(data) 

 

#같은 길이의 리스트에 담긴 사전이나 NumPy 배열을 넣는 것이다.

 

 

In[10]: frame

Out[10]: 

    pop    state    year

0    1.5    Ohio    2000

1    1.7    Ohio    2001

2    2.4  Nevada  2002

 

#뭐 요런식으로 나온다.

 


지금 내가 타이핑하느라 3개만 넣은거지 사실 더 많이 넣어야 한다.

 

frame.head()를 하면 상위 5개를 알려준다.

 

column은 맘대로 바꿀 수 있다 pop이 아니라 year가 맨앞으로 오게하고싶다?

pd.DataFrame(data, columns=['year', 'state' ,'pop'])

요렇게 선언하면 순서가 바뀐다.

 

요정도로 끝내보자.. 그럼 20000

반응형
그리드형