10 minutes to pandas 1
10 Minutes to Pandas-1
10분이라고 나와있지만 상당히 길기 때문에 나눠서 연습하고 있습니다.
# Library Import
import numpy as np
import pandas as pd
#시리즈 생성
s = pd.Series([1,3,5,np.nan,6,8])
s
# datetime 인덱스와 레이블이 있는 열을 가지고 있는 numpy 배열을 활용하여 데이터 프레임 생성
dates = pd.date_range('20130101',periods=6)
dates
df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD'))
df
# Series 형식으로 변환될 수 있는 dictionary 형태의 objects를 통해 DataFrame 생성
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'})
df2
df2.dtypes
df.head()
df.tail(3)
df.index
df.columns
#모든 컬럼의 dtype을 담을 수 있는 형태의 dtype으로 변환
df.to_numpy()
df2.to_numpy()
#통계적 summary 보기 위해 사용
df.describe()
#데이터 전치
df.T
#축 별로 정령
# axis = 0 (row), axis = 1 (column)
df.sort_index(axis=1, ascending=False)
# 값으로 정렬(B를 기준으로)
df.sort_values(by='B')
# Getting
# Column 하나 선택 => Series
df['A']
#0~2까지의 row 선택
df[0:3]
#Label 선택
# 2013-01-01에 해당하는 값들 반환
df.loc[dates[0]]
#A,B에 해당하는 row값 반환
df.loc[:,['A','B']]
#20130102부터 20130104까지의 A,B 컬럼들 반환
df.loc['20130102':'20130104',['A','B']]
# single value 반환
df.loc[dates[0],'A']
#at을 활용하면 속도가 더 빠르게 access 가능
df.at[dates[0],'A']
df.iloc[3]
# A,B 컬럼에 해당하는 3-4 row 반환
df.iloc[3:5,0:2]
# 해당 포지션에 있는 row와 컬럼 반환
df.iloc[[1,2,4],[0,2]]
#모든 컬럼에 대해 1-2 row 반환
df.iloc[1:3,:]
#1-2에 해당하는 컬럼에 대해 모든 row 값 반환
df.iloc[:,1:3]
# 1번째 row에 대한 A컬럼 값 반환
df.iloc[1,1]
#위와 동일하지만 더 빠름
df.iat[1,1]