根据特定小时/天(熊猫)的记录记录

问题描述 投票:0回答:1

所以,我有一个像这样的数据框:

    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条记录。我该怎么办?

python-3.x pandas sample
1个回答
0
投票

您可以使用groupby.firstgroupby.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()

这将为每个组进行独立的随机采样。

© www.soinside.com 2019 - 2024. All rights reserved.