所以,我有一个像这样的数据框:
Customer Day Hour
0. A 1 0
1. A 1 0
2. A 1 0
3. A 1 2
4. A 2 0
5. A 2 1
而且我知道我想在午夜从每个客户那里采样2条记录(这种情况下只有一个客户,但是我的数据框有几个),凌晨1点没有,凌晨2点2。
因此,在这种情况下,我将在第一天的午夜获得3条记录中的2条,在第一天的凌晨2点获得1条记录,在第二天的午夜获得1条记录。我该怎么办?
您可以使用groupby.first
或groupby.first
:
groupby.last
注意:如果您想要一个DataFrame,则需要使用groupby.last
或
df.groupby(['Customer','Day'])['Hour'].first()
Customer Day
A 1 0
2 0
Name: Hour, dtype: int64
df.groupby(['Customer','Day'])['Hour'].last()
Customer Day
A 1 2
2 1
Name: Hour, dtype: int64
但是,这总是返回第一个或最后一个。也许您正在寻找随机样本:
df.groupby(['Customer','Day']).last()
这将为每个组进行独立的随机采样。