从大熊猫数据帧由总和行以15个分钟垃圾箱数据帧的时间序列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从大熊猫数据帧由总和行以15个分钟垃圾箱数据帧的时间序列相关的知识,希望对你有一定的参考价值。

例如,我有这样一个数据帧:

    ID  Arrival_time
 ....
0   22  2019-01-01 05:34:10
1   23  2018-01-01 05:36:18
2   24  2018-01-01 05:44:24
3   25  2018-01-01 06:10:26
4   26  2018-01-01 06:08:28
5   27  2018-01-01 06:22:29 
 .... 

我需要它有一个时间序列箱15分钟的指标,并与在这15分钟的计数ARRIVAL_TIME条目列的新数据帧。

对于上述我希望是这样的:

                   COUNTED_ARRIVALS
....
2019-01-01 05:30     3
2019-01-01 05:45     0
2019-01-01 06:00     2
2019-01-01 06:15     1
2019-01-01 06:30     0
2019-01-01 06:45     0
2019-01-01 07:00     0
....

我怎么能在熊猫实现这一点?

答案

首先使用dt.floor用于获取15 minutes回合时间和使用groupby.countresample

df = (df.groupby(df['Arrival_time'].dt.floor('15T'))['Arrival_time'].count()
        .resample('15T')
        .mean()
        .fillna(0, downcast='infer')
        .reset_index(name='Counted_Arrival'))

print(df)
         Arrival_time  Counted_Arrival
0 2019-01-01 05:30:00                3
1 2019-01-01 05:45:00                0
2 2019-01-01 06:00:00                2
3 2019-01-01 06:15:00                1

改造前,原来的数据帧:

print(df)
   ID        Arrival_time
0  22 2019-01-01 05:34:10
1  23 2019-01-01 05:36:18
2  24 2019-01-01 05:44:24
3  25 2019-01-01 06:10:26
4  26 2019-01-01 06:08:28
5  27 2019-01-01 06:22:29
另一答案

您可以尝试使用pd.cut的要获取的是有时间范围值的bin

df

    1   time
0   21  2018-01-01 05:34:10
1   23  2018-01-01 05:36:18
2   24  2018-01-01 05:44:24
3   25  2018-01-01 06:10:26
4   26  2018-01-01 06:08:28
5   27  2018-01-01 06:22:29


bins = pd.date_range(start=df['time'].min().floor('15Min'),end=df['time'].max().floor('15Min'),freq='15Min')
df.groupby(pd.cut(df['time'],bins)).count()

日期:

                                           1    time
time        
(2018-01-01 05:30:00, 2018-01-01 05:45:00]  3   3
(2018-01-01 05:45:00, 2018-01-01 06:00:00]  0   0
(2018-01-01 06:00:00, 2018-01-01 06:15:00]  2   2

以上是关于从大熊猫数据帧由总和行以15个分钟垃圾箱数据帧的时间序列的主要内容,如果未能解决你的问题,请参考以下文章

根据第二个数据帧的匹配列更新熊猫数据帧

累积总和数据帧的条件计数 - 遍历列

熊猫矢量化而不是两个数据帧的循环

将值从一个数据帧切片复制到另一个:使用“IndexSlice”的多索引熊猫数据帧的切片是不是总是一致地排序?

按时间戳列过滤/选择熊猫数据帧的行

删除每个索引的多索引熊猫数据帧的最低五个值