jufegome
jufegome

Reputation: 69

pandas groupby time series by 10 min and also keep some columns

i have this information; where "opid" is categorical

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

the result i'm looking for is something like this

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

so... basically i need to know how many of each "opid" are done every 10 min

P.D "amount" is always 1, "opid" is from 1 - 15

Upvotes: 3

Views: 297

Answers (1)

user3483203
user3483203

Reputation: 51155

Using 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

Upvotes: 1

Related Questions