按天分组DatetimeIndex与Pandas

2024-10-03 17:22:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经将我的数据帧索引到一个日期时间索引,如下所示:

timstamp                 _id
2018-05-09 16:56:40.940  somedata1
2018-05-09 16:54:03.959  somedata2
2018-05-10 16:53:42.975  somedata3
2018-05-11 16:52:44.897  somedata4
2018-05-11 16:46:35.902  somedata5

我想展示每个日期的频率,如下所示:

^{pr2}$

提前谢谢!在


Tags: 数据id时间频率pr2timstampsomedata4somedata1
2条回答

str.split+groupby+count

df.groupby(df['timstamp'].str.split().str[0])._id.count().reset_index()

     timstamp  _id
0  2018-05-09    2
1  2018-05-10    1
2  2018-05-11    2

to_datetime+groupby+count

^{pr2}$

或者

df['timstamp'] = pd.to_datetime(df['timstamp']).dt.floor('D')
df.groupby('timstamp', as_index=False)._id.count()

    timstamp  _id
0 2018-05-09    2
1 2018-05-10    1
2 2018-05-11    2

这是一种方法。在

# convert to datetime
df['timestamp'] = pd.to_datetime(df['timestamp'])

# normalize, count values, convert to dataframe
res = df['timestamp'].dt.normalize()\
                     .value_counts()\
                     .to_frame().reset_index()

# rename columns
res.columns = ['timestamp', 'count']

结果:

^{pr2}$

相关问题 更多 >