돈이 만드는 세상
#3-3 pandas 'Series' , 'DataFrame' 기초 정리 본문
Pandas
판다스는 python에서 DB처럼 테이블 형식의 데이터를 쉽게 처리할 수 있는 라이브러리입니다. 데이터가 테이블 형식(DB Table, csv 등)으로 이루어진 경우가 많아 데이터 분석 시 자주 사용하게 될 python 패키지입니다.
import pandas as pd
import numpy as np
# 시각화 패키지
import matplotlib.pyplot as plt
%matplotlib inline
1. Object 생성
판다스에서 사용하는 오브젝트는 두가지가 있습니다. Series와 DataFrame입니다.
- Series : 1차원 데이터와 각 데이터의 위치정보를 담는 index로 구성
- DataFrame : 2차원 데이터와 index, column으로 구성
DataFrame은 Series를 담는 수납장이라고 비유하면 될 것 같습니다. DataFrame에서 하나의 컬럼만 가지고 있는 것이 Series입니다.
1-1. Series
a = pd.Series([1, 2, 3.5, 0])
print(a)
# 0 1.0
# 1 2.0
# 2 3.5
# 3 0.0
# dtype: float64
Series() 안에 list를 통해 1차원 데이터를 넘기기만 하면 됩니다. index는 입력하지 않아도 자동으로 0부터 입력됩니다. 만약 다른 방식으로 index를 입력하고 싶다면 똑같이 list 형식으로 입력하면 됩니다.
b = pd.Series([3, 5, 3.3, np.nan], index=['a', 'b', 'c', 'd'])
print(b)
# a 3.0
# b 5.0
# c 3.3
# d NaN
# dtype: float64
1-2. DataFrame
dates = pd.date_range('20130101', periods=6)
# DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
# '2013-01-05', '2013-01-06'],
# dtype='datetime64[ns]', freq='D')
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
# A B C D
# 2013-01-01 -0.627112 -0.892094 -1.454006 -0.538485
# 2013-01-02 -0.521263 0.547605 -1.232832 -0.950326
# 2013-01-03 0.487237 2.286354 -1.078926 -0.504484
# 2013-01-04 0.403637 -0.705070 0.401972 -0.180470
# 2013-01-05 -1.068866 -0.023767 -0.188616 -0.146031
# 2013-01-06 0.522037 -1.692917 0.133851 -0.038305
index를 시간 관련 데이터라 가정하고 data_range()를 이용하여 시간에 대한 1차원 데이터 생성 후, np.random.randn()을 통해 6x4에 해당하는 2차원 데이터를 생성하였습니다. columns 또한 DataFrame에서 사용될 컬럼의 이름을 1차원 데이터(A, B, C, D)로 생성합니다. 위 3가지 데이터(columns, index, 2차원 데이터)를 가지고 만든 DataFrame입니다.
보편적으로 사용하는 방법 중 하나로 dict의 형태로 DataFrame을 만들 수 있습니다. 각 Key값과 Value(1차원 데이터)가 DataFrame의 하나의 columns과 2차원 데이터가 됩니다.
df2 = pd.DataFrame({'A':1.,
'B':pd.Timestamp('20130102'),
'C':pd.Series(1,index=list(range(4)),dtype='float32'),
'D':np.array([3]*4,dtype='int32'),
'E':pd.Categorical(["test","train","test","train"]),
'F':'foo'})
# A B C D E F
# 0 1.0 2013-01-02 1.0 3 test foo
# 1 1.0 2013-01-02 1.0 3 train foo
# 2 1.0 2013-01-02 1.0 3 test foo
# 3 1.0 2013-01-02 1.0 3 train foo
https://cycorld.gitbooks.io/python/content/numpy.html
5-3. numpy · 왕초보를 위한 파이썬 활용하기
cycorld.gitbooks.io
https://laboputer.github.io/machine-learning/2020/04/07/pandas-10minutes/
판다스(Pandas) 사용법 알아보기
판다스 공식홈페이지 10 minutes to pandas에서 소개된 기본적인 사용법을 따라하면서 번역한 글입니다. 직역하기 보다는 간단하게 요약하고 설명이 더 필요한 부분은 추가하였으니 도움되시길 바랍
laboputer.github.io
'프로그래밍 > Python' 카테고리의 다른 글
#3-2 파이썬 numpy 기초 정리 (0) | 2022.02.15 |
---|---|
#3-1 파이썬 pandas 초급 강의(수정 필요) (0) | 2022.02.15 |
#2 본격적인 파이썬 공부를 위한 계획표(2022/02/09) (0) | 2022.02.09 |
#1-4 파이썬 초급 강의 - 예외 처리(try/exception) (0) | 2022.02.07 |
#1-3 Python 초급 강의 - 클래스(class) (0) | 2022.02.04 |