[英]Group DatetimeIndex by day with pandas
我已經將數據框索引為DateTimeIndex,如下所示:
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
我想顯示每個日期的頻率,如下所示:
day count
2018-05-09 2
2018-05-10 1
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']
結果:
print(res)
timestamp count
0 2018-05-09 2
1 2018-05-11 2
2 2018-05-10 1
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
df.assign(
timstamp=pd.to_datetime(df['timstamp']).dt.floor('D')
).groupby('timstamp', as_index=False)._id.count()
要么,
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.