10 minutes to pandas 1

참고: 10 Minutes to Pandas

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]