gpt4 book ai didi

python - 如何从日期时间推断季度?

转载 作者:行者123 更新时间:2023-11-28 22:22:56 24 4
gpt4 key购买 nike

我有一些日期,我正试图从中推断出季度。我已经强行解决了一个解决方案,但我希望能够从日期计算季度以确保数据的完整性。

第一行永远是一个季度的最后一天,也就是第 0 个季度。之后,季度应在递增之前重复三次。例如,0、1、1、1、2、2、2。

我在下面附上了暴力解决方案,但有谁知道实现这一目标的优雅解决方案吗?或者知道我可以应用以使用开始/当前日期解析为四分之一数字的日期时间公式吗?

quarters = [0]
for n in xrange(1, len(date_range)):
for i in xrange(3):
quarters.append(n)
quarters = quarters[:len(date_range)]

launchpoint_date = pd.to_datetime('2017-03-31')
date_range = pd.DataFrame({'Date': [pd.to_datetime('2017-03-31'),
pd.to_datetime('2017-04-30'),
pd.to_datetime('2017-05-31'),
pd.to_datetime('2017-06-30'),
pd.to_datetime('2017-07-31'),
pd.to_datetime('2017-08-31'),
pd.to_datetime('2017-09-30'),
pd.to_datetime('2017-10-31'),
pd.to_datetime('2017-11-30'),
pd.to_datetime('2017-12-31'),
pd.to_datetime('2018-01-31'),
pd.to_datetime('2018-02-28'),
pd.to_datetime('2018-03-31'),
pd.to_datetime('2018-04-30'),
pd.to_datetime('2018-05-31'),
pd.to_datetime('2018-06-30'),
pd.to_datetime('2018-07-31'),
pd.to_datetime('2018-08-31')],
'Month': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]})

launchpoint_date = launchpoint_date.month
date_range['Quarter'] = quarters

date_range

最佳答案

您可以将 pd.Grouperfrequency quarterngroup 一起使用,即

date_range['new'] = date_range.groupby([pd.Grouper(key='Date',freq='q')]).ngroup()

输出:

         Date  Month  Quarter  new0  2017-03-31      0        0    01  2017-04-30      1        1    12  2017-05-31      2        1    13  2017-06-30      3        1    14  2017-07-31      4        2    25  2017-08-31      5        2    26  2017-09-30      6        2    27  2017-10-31      7        3    38  2017-11-30      8        3    39  2017-12-31      9        3    310 2018-01-31     10        4    411 2018-02-28     11        4    412 2018-03-31     12        4    413 2018-04-30     13        5    514 2018-05-31     14        5    515 2018-06-30     15        5    516 2018-07-31     16        6    617 2018-08-31     17        6    6

关于python - 如何从日期时间推断季度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47397941/

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