Python 데이터 분석가 (2)

문병두·2024년 11월 21일

python

목록 보기
2/5

05 Time_Series

Yr_Mo_Dy을 판다스에서 인식할 수 있는 datetime64타입으로 변경

object -> datetime
df.Yr_Mo_Dy = pd.to_datetime(df.Yr_Mo_Dy)

년도별 각컬럼의 평균값을 구하여라

df.groupby(df.Yr_Mo_Dy.dt.year).mean(numeric_only=True)

weekday컬럼을 만들고 요일별로 매핑

df['weekday'] = df.Yr_Mo_Dy.dt.weekday

모든 결측치는 컬럼기준 직전의 값으로 대체하고 첫번째 행에 결측치가 있을경우 뒤에있는 값으로 대체

df.fillna(method='ffill').fillna(method='bfill')

년도 - 월을 기준으로 모든 컬럼의 평균값을 구하여라

df.groupby(df.Yr_Mo_Dy.dt.to_period('M')).mean(numeric_only=True)

06 Pivot

프레임화 작업

년도가 2015년 이상, Dim1이 Both sexes인 케이스만 추출

df[(df.Period >=2015) & (df.Dim1 =='Both sexes')]

추출한 데이터로 아래와 같이 나라에 따른 년도별 사망률을 데이터 프레임화 하라

target.pivot(index='Location',columns='Period',values='First Tooltip')

Dim1에 따른 년도별 사망비율의 평균을 구하라

df.pivot_table(index='Dim1',columns='Period',values='First Tooltip',aggfunc='mean')

한국 올림픽 메달리스트 데이터에서 년도에 따른 medal 갯수를 데이터프레임화

kr.pivot_table(index='Year',columns='Medal',aggfunc='size').fillna(0)

컬럼 정렬
Ans[['Gold', 'Silver', 'Bronze']]

sport종류에 따른 성별수

df.pivot_table(index='Sport',columns='Gender',aggfunc='size')

07 Merge, Concat

SQL join 역활

df1과 df2 데이터를 하나의 데이터 프레임으로 합쳐라
pd.concat([df1,df2], axis=0)

둘다 포함
pd.concat([df3,df4],join='inner')

모든 컬럼 출력 nan 0 출력
pd.concat([df3,df4],join='outer').fillna(0)

df5과 df6 데이터를 하나의 데이터 프레임으로 merge함수를 이용하여 합쳐라. Algeria컬럼을 key로 하고 두 데이터 모두 포함하는 데이터만 출력하라
on = key 컬럼럼

pd.merge(df5,df6,on='Algeria',how='inner')

profile
데이터분석가

0개의 댓글