공부 과정을 기록하는 페이지입니다. 다음 원칙을 지켰는지 확인합니다.
1. 레퍼런스에서 어떤 부분을 더 발전시켰는지
2. DA에서 사용하는 언어와 개념을 나의 언어로 설명할 수 있는지
def make_visit_table(df):
elec_daily_summary_table=df.groupby(by=[df['event_time'].dt.normalize()]).agg(
Number_of_daily_visits=('user_session', lambda x: x.nunique()),
Number_of_daily_visitors=('user_id', lambda x: x.nunique()))
return elec_daily_summary_table
df_elec_action = df_elec.groupby(['categori_code_level_2', 'event_type'])
.size()
.to_frame()
.reset_index()
df_elec_action = pd.pivot_table(df_elec_action,
index = ['categori_code_level_2'],
columns = ['event_type'],
values = 0)
.reset_index()
데이터의 용량이 클 때 사용할 수 있는 방법에 대해 알아봤다. 데이터가 csv의 형태로 저장되어 있을 경우 spark를 활용하여 parquet 형태로 바꾸면 데이터를 처리하는 속도가 빨라진다. csv는 데이터를 행 단위로 처리하는 반면에 parquet는 데이터를 열 단위로 처리한다. 데이터를 조회하거나 필터를 할때 행보다는 열을 중심으로 데이터를 처리하는 경우가 많기 때문에 parquet 형식의 데이터가 csv보다 처리가 빠르다.
parquet이 익숙하지 않다면 bigquery에 데이터를 적재하여 활용하는 방법도 고려할만 하다. parquet와 마찬가지로 열 형식의 처리를 지원하여 개별 열을 스캔하는데 효율적이다. 코랩을 분석 툴로 사용하는 경우 api를 활용하여 쉽게 연동할 수도 있다. mysql 서버에 락이 걸려 코랩과 연결하는데 고생한 경험이 있다면(혹은 고생하고 있다면) bigquery를 사용해보자!