オンラインコースを受講しているユーザーに関するデータセットがあります。それは、 'id'、 'event'、 'time'のような機能を持っています。私はそれらをグループ化し、特定の日に各イベントを行っているユーザーの頻度を知りたい。私は数日で数えたい。日付の時刻を変換する方法とPythonの日数をカウントするには?
lt = log_train.groupby(['enrollment_id','event','time']).size()
print(lt)
enrollment_id event time
1 access 2014-06-14T09:38:39 2
2014-06-14T09:38:48 1
2014-06-19T06:21:16 2
2014-06-19T06:21:32 1
2014-06-19T06:21:45 1
..
200887 navigate 2014-07-24T03:27:16 1
200887 navigate 2014-07-24T03:27:16 1
page_close 2014-07-24T04:19:55 1
video 2014-07-24T04:19:57 1
200888 access 2014-07-24T03:48:14 2
discussion 2014-07-24T03:47:57 1
navigate 2014-07-24T03:47:17 1
2014-07-24T03:47:28 1
2014-07-24T03:48:01 1
私が他のデータセットで見た情報から、userIDs、courseIDs、およびコースの範囲時間があります。
usercourse = pd.merge(enroll,date,how="left", on= 'course_id')
enrollment_id username \
0 1 9Uee7oEuuMmgPx2IzPfFkWgkHZyPbWr0
1 3 1qXC7Fjbwp66GPQc6pHLfEuO8WKozxG4
2 4 FIHlppZyoq8muPbdVxS44gfvceX9zvU7
course_id from to
0 DPnLzkJJqOOPRJfBxIHbQEERiYHu5ila 2014-06-12 2014-07-11
1 7GRhBDsirIGkRZBtSMEzNTyDr2JQm4xx 2014-06-19 2014-07-18
2 DPnLzkJJqOOPRJfBxIHbQEERiYHu5ila 2014-06-12 2014-07-11
すべてのユーザーは1つのコースしかなく、すべてのコースには30日で同じ範囲があります。だから私は、すべてのコース異なる日付から開始
enrollment_id event #ofDays #ofActionTimes
1 access 2 2
10 6
30 2
..
200887 navigate 23 1
page_close 30 1
video 1 1
200888 access 12 2
discussion 2 1
navigate 5 3
29 4
**#ofDays means at the Nth day of a course.
#ofActionTimes means how often an event happens on the Nth day.**
ので、このような類似しているはずが欲しいものを私はどのようにPythonの上でこのデータ形式を生成するには考えています。
問題を解決するために誰かが私を助けてくれることを願っています!
'time'と' frequency'は何ですか?あなたのサンプル出力を構築するために使用できる 'usercourse'データを提供できますか? –
こんにちは@andrew_reece、私は最後のコードの最後に説明を更新しました。 –