파이썬 분석 실무, 유저 Funnel 분석 - (2) 날짜 데이터 다루기

|

python 분석 실무, 유저 funnel 분석

날짜 데이터 다루기

데이터 분석시 날짜 데이터를 활용하면 편하게 시간에 따른 추이 분석이 가능하다. 요일별, 날짜별, 월별, 년도별 그리고 시간별까지 쪼개어 트렌드를 살펴볼 수 있다. 그 중 유의미한 시간기준이 무엇인지 찾는 것이 시간 데이터를 다뤄 얻어내야 할 목표이다.

  • pandas.to_datetime() : 날짜 데이터로 변경 참고
  • Pandas Datetime API
  • .dt.year
  • .dt.month
  • .dt.date
  • .dt.day
  • .dt.dayofweek : 0-Monday, 6-Sunday
df["datetime"] = pd.to_datetime(df["datetime"])

df.info()
# <class 'pandas.core.frame.DataFrame'>
# Int64Index: 301861 entries, 0 to 301860
# Data columns (total 7 columns):
# actiontype          301861 non-null object
# ismydoc             301861 non-null object
# ext                 301861 non-null object
# sessionid           301861 non-null object
# documentposition    301861 non-null object
# datetime            301861 non-null datetime64[ns]
# screen              301861 non-null object
# dtypes: datetime64[ns](1), object(6)
# memory usage: 18.4+ MB

df["datetime"].dt.month[:5]
# 0    7
# 1    7
# 2    7
# 3    7
# 4    7

df["datetime"].dt.day[:5]
# 0    18
# 1    18
# 2    18
# 3    18
# 4     6
  • 날짜데이터 다룰 때 유용한 .groupby()
  • gropyby 해서 나온 결과를 dataframe으로 바꾸고 싶을 때
    • pandas.DataFrame() : index가 gruopby의 기준 칼럼 값이 된다.
    • pd.DataFrame().reset_index() : index에 0부터 넣고, 기준 칼럼이 하나의 칼럼으로 들어가게 한다.
# 날짜별 날짜의 갯수를 확인하는 코드
df.groupby('datetime').size() 

# 날짜별로 세션 수를 계산하는 코드
df.groupby("datetime")['sessionid'].nunique()

# groupby로 나온 결과의 index를 칼럼으로 넣고, index에는 정수를 넣는 코드
pd.DataFrame({'counts': df.groupby('datetime').size()}).reset_index()

실습 파일 확인하기