q67
Yr_Mo_Dy에 년도가 2061년 이상의 경우에는 모두 잘못된 데이터이다. 해당경우의 값은 100을 빼서 새롭게 날짜를 Yr_Mo_Dy 컬럼에 정의하라
def fix_century(x):
import datetime
year = x.year - 100 if x.year >= 2061 else x.year
return pd.to_datetime(datetime.date(hyear, x.month, x.day))
df['Yr_Mo_Dy'] = df['Yr_Mo_Dy'].apply(fix_century)
q68
df.groupby('Yr_Mo_Dy'.dt.year).mean()
q69 dt.weekday
df['weekday'] = df['Yr_Mo_Dy'].dt.weekday
q70
조건 하나 -> lambda 사용!
df['WeekCheck'] = df.weekday.map(lambda x : 1 if x in [5,6] else 0)
q71
df.groupby(df['weekday'].dt.month).mean()
q72 fillna() 파라미터
method = 'ffill'
method = 'bfill'
df.fillna(method='ffill').fillna(method='bfill')
q73
df.groupby(df.Yr_Mo_Dy.dt.to_period('M')).mean()
q74 차분 diff()
df['RPT'].diff()
q75
rolling() 이동하는 method
df[['RPT','VAL']].rolling(7).mean()
서울시 미세먼지 데이터 ~!
년-월-일:시 컬럼을 pandas에서 인식할 수 있는 datetime 형태로 변경하라. 서울시의 제공데이터의 경우 0시가 24시로 표현된다
어렵노..
def change(x):
import datetime
date = x.split(':')[0]
hour = x.split(':')[1]
if hour == '24':
hour = '00:00:00'
FinalDate = pd.to_datetime(date + '' + hour) + datetime.timedelta(days=1)
else:
hour = hour + ':00:00'
FinalDate = pd.to_datetime(date + '' + hour)
return FinalDate
df['(년-월-일:시)'] = df['(년-월-일:시)'].apply(change)
q77
dt.day_name
df['dayName'] = df.(년-월-일:시).dt.day_name()
q78
df.groupby(['dayName','PM10등급'], as_index=False).size()
q79
시간이 연속적인 것이 차분을 했을 때 첫값은 na, 이후 모든 차분값이 동일하면 연속이라 판단
사실 이해 안됨 ㅋㅋㅋㅋ
unique는 왜 하는지. .. x는 왜 2 인지...ㅠㅠ
x = len(df.(년-월-일:시)).diff().unique())
if x == 2:
ans = True
else:
ans = False
q80
'빅데이터 분석기사 > 데이터마님' 카테고리의 다른 글
Q ~ 66 groupby, lambda, map (0) | 2024.05.13 |
---|---|
데이터 전처리 100문제 Q20~43 - duplicate(), str, isin() (0) | 2024.05.05 |
데이터 전처리 100문제 Q1~19 - selecte_dtypes(), quantile() (0) | 2024.05.03 |