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
'데이터 사이언스(Data Science) > 데이터 분석, 자료분석(Data)' 카테고리의 다른 글
[Python] DataFrame으로 csv파일 만들기, excel만들기 (0) | 2020.08.20 |
---|---|
베이지안 추론이란, Bayesian inference? + 베이지안 분류,Bayesian classification (0) | 2020.08.18 |
[Data Integration] 데이터 융합이란?(Data Integration) (0) | 2020.08.10 |
[Python] pandas에서 반복적인 행 접근할 때(Data Processing) (0) | 2020.08.06 |
[NLP]자연어 처리 word2vec 개념 쉽게 정리 (0) | 2020.08.05 |