STUDY/AI Modeling

[Python][AI] - Pandas 란? Pandas의 Series

옐옐루 2024. 9. 12. 10:57

Pandas란?

판다스는 데이터 분석을 위한 파이썬 라이브러리

 

1) Numpy 기반으로 만들어져 있음

2) 판다스에도 두가지 자료 구조 제공 (시리드, 데이터 프레임)

 

데이터는 보통 테이블 형태로 저장됨

시리즈(Series) : 하나의 컬럼 ( 일차원 ) 을 저장 하는 개념 이런 시리즈가 여러개가 모이면 이차원 데이터가 됨.

이런 이차원 데이터를 다루는 자료구조가 “데이터프레임”

 

판다스 임포트 방식 여러가지가 있음 크게 주로 두가지 

from pandas import Series, DataFrame
--> Series()
import pandas as pd 
--> pd.series()
  1. 판다스라는 모듈 혹은 퍄키지에서 series,dataframe 을 사용하겠다 (클래스이름 바로 사용 가능)
  2. Import pandas 라면 모듈.클래스() 이랗게 불러야됨

Series 객체 생성

numpy에서 ndarray를 만드는것과 비슷

from pandas import Series

arr = [0,1,2,3] # 표현하고 싶은 데이터를 파이썬리스트에 저장. 

# 저장된 파이썬 리스트를(arr) Series 클래스의 생성자를 호출해서(Series) Series 타입의 객채를 생성하는 것 (s)
# Series 클래스의 객체를 생성한다. 객체를 생성할때 생성자의 인자값으로 파이썬 리스트(arr)를 넘겨주면 
#시리즈 클래스타입의 객체가 생성되고 그 객체를 왼쪽에 있는 변수(s)가 바인딩 하게 되는 개념 
s = Series(arr) 

print(s)

 

* 참고 * 

> Shift + Tab = Series()에서 사용 가능한 인자값을 확인 가능 

 

 

- value 0,1,2,3이 잘 저장되었음을 볼 수 있음

- pandas.core.series에 있는 Series 타입 사용

 

  • 표현하고 싶은 데이터를 파이썬 데이터구조로 먼저 생성한 후
  • Series() 타입에 해당 데이터를 인자값으로 넘겨주면 됨
  •  

Series 내부 구조 (1/2)

  • 행 번호와 인덱스를 사용해서 데이터를 관리
  • 자동으로 부여되는 (수정 X) 행 번호 
  • 인덱스는 문자 혹은 숫자로 설정 가능
  • 설정하지 않으면 0부터 시작하는 정수로 자동 할당 됨
In   : 
 data = [ 00, 200, 300]
 s = Series(data)
 print( s) 
 
Out : 
 0  100
 1  200
 2  300
 dtype : int64
  • 데이터에 100,200,300이 저장이 되고
  • 딕셔너리처럼 0,1,2 인덱스가 붙게됨. 이 인덱스를 통해 대응되는 데이터 값을 가져올 수 있음
  • 만약 인덱스를 우리가 지정하지 않으면 기본적으로 0으로 시작하는 정수 인덱스가 붙게 됨
  • 이 인덱스와 별도로 행 번호가 존재하게 됨 (행번호는 공식적인 용어 X)
  • print를 하게 되면 인덱스와 데이터만 출력이 됨.

 

Series 내부구조 (2/2)

  • Series 생성 시 Index를 지정할 수 있음
  • 딕셔너리의 키(key)와 유사한 개념
In : 
 data = [100, 200,300]
 index = ["월","화","수"]
 s = Series(data,index)
 print(s)
 
Out : 
 월  100
 화  200
 수  300
 dtype : int64 
  • 데이터에 접근할 때 행 번호를 통해 접근할 수도 있고 우리가 할당한 인덱스를 토해 접근할 수도 있음.
  • Q. 그럼 왜 이렇게 두가지 방법을 쓰나?
  • 2월 .2일이라는 인덱스가 있고, 마지막엔 2월 28일이라는 인덱스가 존재한다고 가정해보자
  • 만약 우리가 2월의 마지막날의 인덱스를 가지고 오고 싶음.
  • 하지만 우리는 2월의 마지막날이 28일지 29일지 모르는 상황.
  • 그럼 행번호를 통해 -1번(가장 끝에 있는 행번호) 으로 마지막 데이터를 가지고 올 수 있음
  • 즉 어쩔땐 행번호가 편할때가 있고 어떨땐 인덱스가 편할 수 있음
  • 이 두가지를 모두 지원하는게 Series 임.

 

Series의 속성

속성 = 클래스 내부에 있는 변수를 의미함.

  • Series 클래스의 속성
  • 1) index
  • 2) value
data = [100,200,300]
index = [0,1,2]
s = Series(data,index) 
# s라는 변수가 Series 객체를 바인딩 하는 상황
print(s.index) #s.index는 해당 s에서 index 변수(속성)에 접근하는것 
print(s.data)

 

연습문제


  1. 다음 데이터를 판다스 시리즈(Series)객체로 생성하세요

Series Series

index valuse
메로나 500
누가바 800
빠삐코 200

 

 

정답

 

반응형