[3주차 - Day3] Python으로 데이터 다루기 - Pandas

2023. 3. 31. 13:34BOOTCAMP/프로그래머스 인공지능 데브코스

Pandas 시작하기

Import pandas를 통해서 진행

import pandas as pd

pandas로 1차원 데이터 다루기 - Series

Series?

  • 1-D labled array
  • 인덱스를 지정해 줄 수 있음
s = pd.Series([1, 4, 9, 16, 25])

s

0     1
1     4
2     9
3    16
4    25
dtype: int64

t = pd.Series({'one':1, 'two':2, 'three':3, 'four':4, 'five':5})

t

one      1
two      2
three    3
four     4
five     5
dtype: int64

Series + Numpy

  • Series는 ndarrayd와 유사하다
s[1]

4

t[1]

2

t[1:3]

two      2
three    3
dtype: int64

s[s > s.median()] # 자기 자신의 median(중앙값)보다 큰 값들만 가진다.

3    16
4    25
dtype: int64

s[[3, 1, 4]]

3    16
1     4
4    25
dtype: int64

import numpy as np

np.exp(s)

0    2.718282e+00
1    5.459815e+01
2    8.103084e+03
3    8.886111e+06
4    7.200490e+10
dtype: float64

s.dtype

dtype('int64')

 

Series + dict

  • series는 dict와 유사하다
t

one      1
two      2
three    3
four     4
five     5
dtype: int64

t['one']

1

# Series에 값 추가

t['six'] = 6

t

one      1
two      2
three    3
four     4
five     5
six      6
dtype: int64

'six' in t

True

'seven' in t

False

t.get('seven')
t.get('seven', 0)

0

 

Series에 이름 붙이기

  • name 속성을 가지고 있다.
  • 처음 Series를 만들 때 이름을 붙일 수 있습니다.
s = pd.Series(np.random.randn(5), name="random_nums")

s

0    0.295096
1   -0.242332
2   -1.020200
3   -0.048958
4   -0.908102
Name: random_nums, dtype: float64

s.name = "임의의 난수"

s

0    0.295096
1   -0.242332
2   -1.020200
3   -0.048958
4   -0.908102
Name: 임의의 난수, dtype: float64

 

Pandas로 2차원 데이터 다루기 - dataframe

  • 2-0 labeled lable
  • 인덱스를 지정할 수도 있음
d = {"height":[1, 2, 3, 4], "weight":[30, 40, 50, 60]}
df = pd.DataFrame(d)
df

## dtype 확인
df.dtypes

height    int64
weight    int64
dtype: object