본문 바로가기
개발일지/Pandas

pandas 판다스 기초 4

by 개발에정착하고싶다 2022. 7. 15.
320x100
## Creating Pandas Series (Part 1)

import pandas as pd

### from DataFrame

pd.read_csv('summer.csv', usecols = ['Athlete'], squeeze = True).head()

# 설명은 shift + tab, tab으로 확인해보고
# squeeze 는 "하나의 열만 입력되었을 때, 시리즈를 반환한다."라는 의미다
# 하지만 이게 크게 의미가 없다고 생각하는게, 여태까지 보면 단일 컬럼은 언제나 Series였고, 다중 컬럼은 언제나 dataframe이였다.
# Series 만들기인데,
# 왜 만들어야하는걸까?
# 보니깐 Series는 1차원적
# DataFrame은 2차원적 이라고 한다.

pd.Series([10,25,6,36,2])

# 자동으로 인덱스 값이 0부터 시작되서 기입된다.
pd.Series([10,25,6,36,2], index = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'])

# 각각의 인덱스에 이름을 붙여주는 것이다.
#### Creating Pandas Series (Part 2)

import pandas as pd
import numpy as np

sales = np.array([10,25,6,36,2])
sales

# array([10, 25,  6, 36,  2])
# pandas의 Series로 전환해주는 것은 튜플이든 리스트든 다 상관없다.

sales = [10,25,3,63,2]

pd.Series(sales)

'''
0    10
1    25
2     3
3    63
4     2
dtype: int64
'''
dic = {'Mon':10, 'Tue':25, 'Wed':6, 'Thu':36, 'Fri':2}
dic

# {'Mon': 10, 'Tue': 25, 'Wed': 6, 'Thu': 36, 'Fri': 2}
sales = pd.Series(dic)
sales

'''
Mon    10
Tue    25
Wed     6
Thu    36
Fri     2
dtype: int64
'''
pd.Series(dic, index= ['Fri', 'Sat', 'Sun', 'Mon', 'Tue', 'Wed'])

'''
Fri     2.0
Sat     NaN
Sun     NaN
Mon    10.0
Tue    25.0
Wed     6.0
dtype: float64
'''
# 흥미롭다. 재설정 되는 개념이 아니라, 이미 설정된 값에서 없는것은 결측치 (Nan)값으로 대체되는것이.
pd.Series(dic, index=[1,2,3,4,5])

# 전체적으로 생각을 해보니깐 dic이라는 변수에 인덱스값, 필드값을 모두 담아놓으면
# 추가로 Series 선언같은걸 해줄때 설정 초기화가 되는게 아니라, 기본적으로 dic이 가지고 있는 값 그대로를 가지고 간다는 점이 다른것같다.
## Indexing and Slicing

titanic = pd.read_csv('titanic.csv')

age = titanic.age
age
'''
0      22.0
1      38.0
2      26.0
3      35.0
4      35.0
       ... 
886    27.0
887    19.0
888     NaN
889    26.0
890    32.0
Name: age, Length: 891, dtype: float64
'''
age[-1]

# 이것에 대하여는 ValueError로써 작동이 안된다.

# 인덱싱이 "순서에 기반한"인덱싱이 아니라, "인덱스 라벨에 기반한"인덱스일 경우는 이렇다고 한다.
# 위의 DataFrame이 인덱싱이 안될때의 방법이 있다.

# 우선 마지막의 숫자를 체크
age.tail(2)

'''
889    26.0
890    32.0
Name: age, dtype: float64
'''

# 즉, 마지막의 숫자는 32.0이 나와야 정상이다.
age.iloc[-1]
# 32.0

 

300x250

'개발일지 > Pandas' 카테고리의 다른 글

pandas 판다스 기초 6  (0) 2022.07.16
pandas 판다스 기초 5  (0) 2022.07.15
pandas (판다스) 기초3  (0) 2022.07.15
pandas(판다스) 기초 2  (0) 2022.07.14
pandas 기초1  (0) 2022.07.14