Python:如何为每个用户分组?

Python:如何为每个用户分组?,python,pandas,group-by,Python,Pandas,Group By,我有一个如下所示的数据帧 uid timestamp count val 0 ccf7758a-155f-4ebf-8740-68320f279baa 2020-03-17 13:00:00 23 3 1 ccf7758a-155f-4ebf-8740-68320f279baa 2020-03-17 13:00:00 20 2 2 c

我有一个如下所示的数据帧

                      uid                       timestamp          count  val
0   ccf7758a-155f-4ebf-8740-68320f279baa    2020-03-17 13:00:00     23     3
1   ccf7758a-155f-4ebf-8740-68320f279baa    2020-03-17 13:00:00     20     2
2   ccf7758a-155f-4ebf-8740-68320f279baa    2020-03-17 15:00:00     10     5
3   16162f81-d745-41c2-a7d6-f11486958e36    2020-03-18 09:00:00     9      6
4   16162f81-d745-41c2-a7d6-f11486958e36    2020-03-18 09:00:00     9      3
                      uid                       timestamp          count  val
0   ccf7758a-155f-4ebf-8740-68320f279baa    2020-03-17 13:00:00     43    2.5
2   ccf7758a-155f-4ebf-8740-68320f279baa    2020-03-17 15:00:00     10     5
3   16162f81-d745-41c2-a7d6-f11486958e36    2020-03-18 09:00:00     18    4.5
我想对每个
uid
进行分组,以获得每小时
count
的总和和
val

我想要如下的东西

                      uid                       timestamp          count  val
0   ccf7758a-155f-4ebf-8740-68320f279baa    2020-03-17 13:00:00     23     3
1   ccf7758a-155f-4ebf-8740-68320f279baa    2020-03-17 13:00:00     20     2
2   ccf7758a-155f-4ebf-8740-68320f279baa    2020-03-17 15:00:00     10     5
3   16162f81-d745-41c2-a7d6-f11486958e36    2020-03-18 09:00:00     9      6
4   16162f81-d745-41c2-a7d6-f11486958e36    2020-03-18 09:00:00     9      3
                      uid                       timestamp          count  val
0   ccf7758a-155f-4ebf-8740-68320f279baa    2020-03-17 13:00:00     43    2.5
2   ccf7758a-155f-4ebf-8740-68320f279baa    2020-03-17 15:00:00     10     5
3   16162f81-d745-41c2-a7d6-f11486958e36    2020-03-18 09:00:00     18    4.5

您可以尝试使用自定义函数的字典式定义将
groupby
agg
结合使用:

import pandas pd
import numpy as np

df.groupby(['uid', 'timestamp']).agg({"val": np.mean, "count" :np.sum})
尝试:
df.groupby(['uid',timestamp']).agg({'count':'sum','val':'mean'})
df.groupby(['uid',pd.Grouper(key='timestamp',freq='1H')).agg({'count':'sum',val':'mean'})