私は、指定された日付に1時間ごとにシステムにログインするユーザーの数を数えようとしています。私が持っている日付は次のようになります。Pandas Grouping By Datetime
df=
Name Date
name_1 2012-07-12 22:20:00
name_1 2012-07-16 22:19:00
name_1 2013-12-16 17:50:00
...
name_2 2010-01-11 19:54:00
name_2 2010-02-06 12:10:00
...
name_2 2012-07-18 22:12:00
...
name_5423 2013-11-23 10:21:00
私はユーザーが興味がないので、私はその列を削除した名前を付けます。私は、グループ化されたデータ構造を作成するために管理して、次のコマンド
grp = df.groupby(by=[df.Date.map(lambda x: (x.year, x.month, x.day, x.hour))])
df2 = pd.DataFrame({'Count' : grp.size()}).reset_index()
grp
を使用して新しいデータフレームdf2
は(year, month, day, hour)
のタプルにdatetime
タイプを変換します。このついて行くのより良い/より効率的な方法があるかどう
私は思ったんだけど何for
ループ
for i in range(len(df2)):
proper_date = datetime.datetime(*df2['Date'][i])
df2.set_value(i, 'Date', proper_date)
を使用してdatetime
型に戻ってそれを変換することができるよとは?
または可能性:グループのための 'df.Date.round( 'H')' –
キーなぜ単に: 'ハタ=のDF [ '日'] dt.hour'。 'df.groupby(grouper).count()'? – Kartik
@ Kartik datetimeから分と秒だけ切り捨てる必要があるので、0に設定してください。 – jezrael