簡體   English   中英

與熊貓按日期分組DatetimeIndex

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM