gpt4 book ai didi

python - 如何按日期范围分组

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:51 25 4
gpt4 key购买 nike

我正在尝试根据另一列中的数据对一列中的数据进行分组,但我只需要特定时间范围内的数据。所以让我们说 2015-11-1 到 2016-4-30。我的数据库看起来像这样:

account_id    employer_key    login_date
1111111 google 2016-03-03 20:58:36.000000
2222222 walmart 2015-11-18 11:52:56.000000
2222222 walmart 2015-11-18 11:53:14.000000
1111111 google 2016-04-06 23:29:04.000000
3333333 dell_inc 2015-09-05 14:13:53.000000
3333333 dell_inc 2016-01-28 03:20:58.000000
2222222 walmart 2015-09-03 00:11:38.000000
1111111 google 2015-09-03 00:12:25.000000
1111111 google 2015-11-13 01:59:59.000000
4444444 google 2015-11-13 01:59:59.000000
5555555 dell_inc 2015-03-12 01:59:59.000000

我正在尝试获得看起来像这样的输出(如果该人在该时间窗口内登录,则它仅显示 1 或 true,如果他们没有登录,则显示 0 或 false):

employer_key  account_id   login_date
google 1111111 1
4444444 1
walmart 2222222 1
dell_inc 3333333 1
dell_inc 5555555 0

我该怎么做呢?

最佳答案

你可以这样做:

In [252]: df.groupby(['employer_key','account_id']) \
...: .apply(lambda x: len(x.query("'2015-11-01' <= login_date <= '2016-04-30'")) > 0) \
...: .reset_index()
Out[252]:
employer_key account_id 0
0 dell_inc 3333333 True
1 dell_inc 5555555 False
2 google 1111111 True
3 google 4444444 True
4 walmart 2222222 True

或使用 boolean indexing :

In [249]: df.groupby(['employer_key','account_id'])['login_date'] \
...: .apply(lambda x: len(x[x.ge('2015-11-01') & x.le('2016-04-30')]) > 0)
Out[249]:
employer_key account_id
dell_inc 3333333 True
5555555 False
google 1111111 True
4444444 True
walmart 2222222 True
Name: login_date, dtype: bool

或另外使用 reset_index():

In [250]: df.groupby(['employer_key','account_id'])['login_date'] \
...: .apply(lambda x: len(x[x.ge('2015-11-01') & x.le('2016-04-30')]) > 0) \
...: .reset_index()
Out[250]:
employer_key account_id login_date
0 dell_inc 3333333 True
1 dell_inc 5555555 False
2 google 1111111 True
3 google 4444444 True
4 walmart 2222222 True

关于python - 如何按日期范围分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42614830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com