[Pandas Built-in Functions]

2020. 12. 29. 20:37[TIPs]/Pandas

view small sample : head() & tail()

# default로 처음 5개 row 출력 or head(n)로 처음 n 개 row 출력
df.head() 

#  default로 마지막 5개 row 출력 or tail(n)로 마지막 n 개 row 출력
df.tail() 

 

view NaN : isnull()

# 모든 데이터 값 중 NaN이 있으면 True, 아니면 False 반환
df.isnull() 

# 각 column의 NaN 개수의 합 반환
df.isnull().sum()  

 

replace NaN : fillna()

# NaN값을 n으로 대체
df.fillna(n) 

# NaN값을 0으로 대체
df.fillna(0) : 

 

locate row : iloc[][]

# specific row + specific column 반환
df.iloc[row][column] : 

# ex.
df.iloc[22][1:] 
# ==> returns row(index 22)  & col(index 1~마지막까지) 반환

 

replace a to b : replace()

# 'object' 형태를 'int' 형태로 바꾸기 전 거쳐야될 단계

# ex.
testString = '25,970'
testString.replace(',','') 
# ==> returns 25970 

 

apply function in a column : apply()

# 특정 함수 fn

# ex.
df['자산'] = df['자산'].apply(fn) 
# ==> returns 자산 column안에 있는 모든 element에 fn 적용

 

add different dataframes : concat()

# concat by rows (axis= 0 안 써도 됨)
pd.concat([df1,df2], axis= 0) 

# concat by columns
pd.concat([df1,df2],axis=1)

# NaN값 발생할 수도 있음

 

merge two dataframes : merge()

# how : {'inner','outer','left','right',etc}

# ex.
pd.merge(df1,df2,how = '위에 것 중 필요한 것 선택', on=['feature'])
# ==> returns df1 & df2 간 ['feature'] column을 바탕으로 how method 수행

# inner : df1 & df2 중 공통 부분만 포함 
# outer : df1 & df2 다 포함
# left : 무조건 df1을 기준
# right : 무조건 df2을 기준

 

grouping based on specific columns : groupby()

# gender로 묶은 후 number 형인 각 column의 mean 을 구함 (이 때 gender column 이 index가 된다)
df.groupby('gender').mean()

# gender로 묶은 후 number 형인 height column의 mean을 구함
df.groupby('gender').height.mean()

 

into tidy format : melt()

# ex.
df.melt(id_vars='a', var_name = '2', value_name = '3')

# 쉽게 표현하자면..

a    b    c
a1    b1    c1    ==> melt 
a2    b2    c2

1    2    3
a1    b    b1
a2    b    b2
a1    c    c1
a2    c    c2

# 이 때 주의할 점은 id_vars 에 index 자체가 들어가면 안됨 
# 필요하다면 df.reset_index() 후 melt 적용!

 

count values : value_counts()

# ex)
df['gender'].value_counts()
# ==> returns 'gender' column에 있는 man & woman 의 총 갯수를 반환

 

find starting with specific texts : str.startswith()

# Ex) 'game_date' 의 '2014'로 시작하는 data만 추출하기
df['game_date'][df['game_date'].str.startswith('2014')]

 

728x90