Pandas按10分钟分组时间序列,并保留某些列。

3
我有这样的信息;其中“opid”是分类数据。
datetime                id      nut      opid     user       amount
2018-01-01 07:01:00    1531     3hrnd     1       mherrera     1
2018-01-01 07:05:00    9510     sd45f     1       svasqu       1
2018-01-01 07:06:00    8125     5s8fr     15      urubi        1
2018-01-01 07:08:15    6324     sd5d6     1       jgonza       1
2018-01-01 07:12:01    0198     tgfg5     1       julmaf       1
2018-01-01 07:13:50    6589     mbkg4     15      jdjiep       1
2018-01-01 07:16:10    9501     wurf4     15      polga        1

我需要的结果类似于这样。
datetime                opid     amount
2018-01-01 07:00:00      1        3
2018-01-01 07:00:00      15       1
2018-01-01 07:10:00      1        1
2018-01-01 07:10:00      15       2

所以...基本上我需要知道每10分钟完成了多少个“opid”中的每一个

P.D.“amount”的值始终为1,“opid”的取值范围是1-15


2
groupby + pd.Grouper 搜索关键词 - BENY
1个回答

1
使用 grouper:

df.set_index('datetime').groupby(['opid', pd.Grouper(freq='10min')]).amount.sum()

opid  datetime
1     2018-01-01 07:00:00    3
      2018-01-01 07:10:00    1
15    2018-01-01 07:00:00    1
      2018-01-01 07:10:00    2
Name: amount, dtype: int64

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接