Pandas 자료 구조는 Series와 DataFrame을 말한다고 생각하면 된다. 그 정도로 이 두가지에 익숙해지면 pandas를 잘 활용한다고 할 수 있다는 것이다.
1. Series 정의
Series는 pandas의 기본 블록이라고 할 수 있다.
일련의 객체를 담을 수 있는 1차원 배열과 같은 자료 구조를 나타낸다.
Series 객체의 문자열 표현은 왼쪽에 색인(index)을 보여주고 오른쪽에 해당 색인의 값(values)을 보여준다.
즉, Series의 배열과 색인 객체는 각각 values와 index 속성을 통해 얻을 수 있는 것이다.
2. Series 만들기
>> import pandas as pd # 사용할 라이브러리를 불러온다(이미 설치되어 있다고 가정).
>> import numpy as np
Series는 리스트, 딕셔너리, NumPy 함수, 스칼라 값들로부터 만들 수 있다.
>> pd.Series([10, 11, 12, 13, 14])
>> pd.Series(list('abcde'))
>> pd.Series({'Mike': 'Dad',
'Marcia' : 'Mom',
'Mikael' : 'Son',
'Bleu' : 'Best doggie ever'})
>> pd.Series(np.arange(4, 9))
>> pd.Series(np.linspace(0, 9, 5))
기본적으로 index 속성을 가지고 index를 지정할 수도 있다.
>> s = pd.Series([1, 2, 3, 4], index = ['a', 'b', 'c', 'd'])
3. Series의 속성들
아래 속성들을 가지고 여러 작업을 해 볼 수 있다.
>> s.values # 값을 확인할 수 있다.
>> s.index # 인덱스를 볼 수 있다.
>> len(s) # 아이템 수를 확인할 수 있다.
>> s.size # 위와 동일하게 아이템 수를 확인할 수 있다.
>> s.shape # 아이템 수와 빈값으로 된 두개 값의 튜플로 돌려준다.
>> s.head(n = 3) # 앞의 3열을 미리 볼 수 있다.
>> s.tail(n= 2) # 뒤의 2열을 미리 볼 수 있다.
>> s.take([1, 3]) # 2번째와 4번째 열 등 지정한 특정 열의 아이템을 볼 수 있다(0부터 시작한다).
>> s['a'] # a 레이블의 값을 돌려준다.
>> s.iloc[[0,2]] # 특정 위치의 값을 찾아 돌려준다.
>> s.loc[['a', 'd']] # 특정 레이블의 값을 돌려준다.
4. Series를 부분집합으로 나누기
>> s = pd.Series(np.arange(100, 110), index = np.arange(10, 20))
>> s[1:6] # 두번째 값(0부터 시작하기 때문에)부터 5번째 값(맨 마지막 값은 제외)까지 돌려준다.
>> s.iloc[[1, 2, 3, 4, 5]] # 지정한 위치의 값들은 모두 돌려준다.
>> s[1:6:2] # 두번째 값부터 5번째 값 중에서 2씩 건너 뛰어 돌려준다(1, 3, 5번째 값).
>> s[:5] # 첫번째 값부터 네번째 값까지 돌려준다.
>> s[4:] # 다섯번째 값부터 마지막 값까지 돌려준다.
>> s[::-1] # 마지막 값에서 첫번째 값까지 거꾸로 돌려준다.
>> s[-4::] # 마지막 4개 값들을 돌려준다.
일련의 날짜 값들을 가지고 작업할 수 있다.
>> dates = pd.date_range('2018-03-01', '2018-03-06')
>> temps1 = pd.Series([20, 22, 25, 30, 23, 27], index = dates)
>> temps2 = pd.Series([10, 15, 13, 19, 13, 17], index = dates)
온도 값 차이를 아래와 같이 다른 변수에 저장할 수 있다.
>> temp_diffs = temps1 - temps2
평균값도 계산 가능하다.
>> temp_diffs.mean()
5. 불린(Boolean) 선택으로 자료를 찾기
>> s = pd.Series(np.arange(0, 5), index=list('abcde'))
>> logical_results = s >= 3
>> s[logical_results] # logical_results 값이 참(true)인 열들만 돌려준다.
>> s[(s >= 2) & (s < 5)] # s값이 2보다 크거나 같고 5보다 작은 열들을 돌려준다.
>> (s >=0).all() # 참(true)을 돌려준다.
>> (s < 2).any() # 참(true)을 돌려준다.
>> (s < 2).sum() # 조건에 맞는 값들의 합을 돌려준다.
<Source : Learing Pandas Second Edition, Packt>
'파이썬으로 할 수 있는 일 > 파이썬 기초' 카테고리의 다른 글
Pandas의 index에 대해 (0) | 2018.11.30 |
---|---|
Pandas DataFrame (0) | 2018.11.28 |
Pandas로 데이터 파일 읽기 (0) | 2018.11.19 |
pandas를 활용한 데이터 분석 프로세스에 대해 (0) | 2018.11.19 |
파이썬을 왜 배우고 있는지에 대해 (0) | 2017.05.18 |