돈이 만드는 세상

#3-3 pandas 'Series' , 'DataFrame' 기초 정리 본문

프로그래밍/Python

#3-3 pandas 'Series' , 'DataFrame' 기초 정리

피델리오 2022. 2. 15. 19:48

 Pandas

판다스는 python에서 DB처럼 테이블 형식의 데이터를 쉽게 처리할 수 있는 라이브러리입니다. 데이터가 테이블 형식(DB Table, csv 등)으로 이루어진 경우가 많아 데이터 분석 시 자주 사용하게 될 python 패키지입니다.

import pandas as pd
import numpy as np

# 시각화 패키지
import matplotlib.pyplot as plt
%matplotlib inline

 

1. Object 생성

판다스에서 사용하는 오브젝트는 두가지가 있습니다. SeriesDataFrame입니다.

  • Series : 1차원 데이터와 각 데이터의 위치정보를 담는 index로 구성
  • DataFrame : 2차원 데이터와 index, column으로 구성

DataFrameSeries를 담는 수납장이라고 비유하면 될 것 같습니다. 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