파이썬/Pandas

1. Pandas Series

2023. 5. 2. 09:04
목차
  1. Pandas = Panel Datas
  2. Series class
  3. dict로 Series생성하기
  4. Series index를 속성처럼 활용하기
  5. Series의 특징
  6. indexing + slicing
  7. 시리즈 연산

Pandas = Panel Datas

= Series나 table 형태로 데이터를 나타낼 수 있다. 이러한 데이터를 다루기 위한 클래스를 제공하는 패키지

Series class

= NumPy에서 제공하는 1차원 배열과 그 모양이 비슷하다. 하지만 배열과 다르게 index를 추가하여 index와 value를 가지는 배열을 말한다.

  • Series 객체 생성시 첫 인수로 data, 두 번째 인수로 idnex를 넣는다.
  • data값으로 iterable,배열,scalar value, dict(key와 index를 동일하게 사용하거나 생략)를 사용할 수 있다.
  • index는 data와 length가 동일해야한다.
  • label 이 꼭 유일(unique)할 필요는 없다.
  • index는 hashable 한 type만 올 수 있다.
import pandas as pd
series = pd.Series(['one','two','three',"four","five","six","seven",'eight','nine','ten'],index=range(1,11))
print(series)

s = pd.Series([9_904_312, 3_448_737, 2_890_451, 2_466_052],
              index=["서울", "부산", "인천", "대구"])
print(s,end="\\n\\n")
print(s.index)
print(s.values,end='\\n\\n')
s.name = "인구"
s.index.name = "도시"
print(s)

dict로 Series생성하기

d = {'a':1,'b':2,'c':3}
ser = pd.Series(d) # 또는 ser = pd.Series(data=d,index=d.keys())
print(ser)
ser = pd.Series(data=d,index=['x','y','z']) 
# index로 주어진 값의 key값에 대응하는 value값을 주기 때문에 없는값이라서 NaN을 넣어준다.
print(ser)

Series index를 속성처럼 활용하기

  • index 값이 영문 문자열인 경우에는 index label이 속성인 것처럼 마침표(.)를 활용하여 해당 index값에 접근 가능

ser.x

Series의 특징

  • 딕셔너리 자료형과 비슷한 특징을 가짐
  • in연산가능
  • items() 메서드를 사용해 각 요소의 key, value에 접근 가능
  • 딕셔너리의 원소는 순서를 가지지 않으므로 시리즈의 데이터도 순서가 보장되지 않는다.
  • 만약 순서를 가지도록 하기 위해서는 Series선언 시에 index에서 리스트로 순서를 지정해주어야 한다.

print("서울" in s)
print("대전" in s)
for k,v in s.items():
    print(k,":",v)

indexing + slicing

print(s[0], s[1], s['인천'],end="\\n\\n")
print(s[[0,3,1]],end="\\n\\n")
print(s[1:2],end="\\n\\n") # 끝값 [2]포함하지 않는다.
print(s['부산':'대구'],end="\\n\\n") # 끝값(대구)도 포함한다.
#문자는 초과하는 범위를 표현할 수 없어서 (초과하는 문자가 뭐냐고 물어보면 답할수가 없음) 끝을 포함시킨다는 다른점이 있다.
print(s[(250e4 < s) & (s < 500e4)],end="\\n\\n")  # 인구가 250만 초과, 500만 미만인 경우

시리즈 연산

  • NumPy 배열처럼 벡터화 연산을 할 수 있다.
  • 다만 values에만 연산이 적용되고 index는 변하지 않는다.
  • 시리즈끼리 연산을 하는 경우 인덱스가 같은 데이터에 대해서만 차이를 구한다.
print(s/10000,end ='\\n\\n')
sd = pd.Series([55546,272830,258416,1490158],index = ['부산','서울','인천','대전'])
ds = s-sd
print(ds,end ='\\n\\n')
print(ds.notnull(),end ='\\n\\n') # NaN값에 대한 여부를 확인가능
print(ds[ds.notnull()],end ='\\n\\n')#notnull()응용
# NaN 값을 갖기 위해선 자료형이 float형이어야 해서 int끼리 연산해도 float형으로 저장된다.
print(ds[ds > 9000000]) # 이런 연산도 가능함.

print(ds)
del ds['대구']
del ds['대전']
ds['부산'] = 1.4
ds

 

 

#연습문제
fin1 = {'카카오':60010,'삼성전자':61000,'LG전자':90000}
fin2_value = [60200,61200,200100]
fi2_index = ['카카오','삼성전자','네이버']

ser_finance1 = pd.Series(fin1) 
ser_finance2 = pd.Series(data = fin2_value, index = fi2_index)
print(ser_finance1,ser_finance2,sep="\\n\\n",end = "\\n\\n")

result = ser_finance1 - ser_finance2
print(result[result.notnull()])

'파이썬 > Pandas' 카테고리의 다른 글

6. Pandas 추가 메서드 - 3  (0) 2023.05.02
5.Pandas 추가 메서드 - 2  (0) 2023.05.02
4.Pandas 추가 메서드 - 1  (0) 2023.05.02
3.Pandas - DataFrame - 2  (1) 2023.05.02
2.Pandas - DataFrame - 1  (0) 2023.05.02
  1. Pandas = Panel Datas
  2. Series class
  3. dict로 Series생성하기
  4. Series index를 속성처럼 활용하기
  5. Series의 특징
  6. indexing + slicing
  7. 시리즈 연산
'파이썬/Pandas' 카테고리의 다른 글
  • 5.Pandas 추가 메서드 - 2
  • 4.Pandas 추가 메서드 - 1
  • 3.Pandas - DataFrame - 2
  • 2.Pandas - DataFrame - 1
잘잔디
잘잔디
4학년이 되고 취업 준비를 위해 2023-01-01부터 공부한 내용을 정리한 블로그입니다.
잘잔디
MBCS 공부일지
잘잔디
전체
오늘
어제
  • 분류 전체보기 (217)
    • 파이썬 (28)
      • 파이썬 이론 (8)
      • NumPy (3)
      • Pandas (6)
      • 파이썬 시각화 (8)
      • 응용 (2)
    • Java (3)
    • Back (38)
      • DataBase이론 (12)
      • MySQL (2)
      • JSP (8)
      • JSTL (2)
      • Spring (0)
      • Django (8)
      • MongoDB (6)
      • FastAPI (0)
    • Front (8)
      • HTML (3)
      • CSS (2)
      • JS (1)
    • 회고록 (10)
    • 알고리즘 문제 풀이 (95)
      • 알고리즘 이론 공부 (14)
      • 프로그래머스 (69)
      • 백준 (12)
    • 머신러닝 (0)
    • 딥러닝 (0)
    • Git (3)
    • R 프로그래밍 (3)
    • 빅데이터 관리 (16)
      • 리눅스 (4)
      • Hadoop (12)
    • AWS (2)
    • 일상 (10)
      • 책 리뷰 (5)
      • TOEIC (2)
      • 자잘하게 공부한 것들 (2)
    • 사이버보안 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Java
  • CSS
  • JavaScript
  • JS
  • Database
  • OOP
  • web
  • 백준
  • playdata
  • 이중우선순위 큐
  • HTML
  • 즐거웠다
  • 객체지향
  • 독산역
  • backend
  • git
  • Encore
  • db
  • 골드

최근 댓글

최근 글

hELLO · Designed By 정상우.
잘잔디
1. Pandas Series
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.