파이썬 분석 실무, 유저 Funnel 분석 - (2) 날짜 데이터 다루기
31 Oct 2018 | python datetimepython 분석 실무, 유저 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()