gpt4 book ai didi

python - 如何使用python创建4-4-5会计日历?

转载 作者:行者123 更新时间:2023-12-04 13:27:56 24 4
gpt4 key购买 nike

我想要一个由相应的周数和月份组成的数据框,每个日期从 1/1/21 到 31/12/50 将属于。例如,

  date  |   day   | week_no | yyyy-mm | quarter
01/01/21| Friday | 40 | 2021-01 | Q4 2021
02/01/21| Saturday| 40 | 2021-01 | Q4 2021
.
.
24/01/21| Sunday | 44 | 2021-02 | Q4 2021
.
.
01/04/21| Thursday| 53 | 2021-03 | Q4 2021
.
04/04/21| Sunday | 1 | 2021-04 | Q1 2022
我在 Pandas 中找到了一个名为 FY5253Quarter 的包装类和 fiscal445但是,在 python 中,我不确定如何使用这个类来实现我所需要的。在此先感谢所有帮助:)

最佳答案

可以使用 SQL 来创建日历表。这里使用 PostgreSQL 的例子:

WITH RECURSIVE cte AS (
SELECT CAST('2021-01-01' AS date) d
UNION ALL
SELECT d+1
FROM cte
WHERE d < CAST('2030-12-31' AS DATE)
)
SELECT
d AS "date",
to_char(d, 'DAY') AS day,
to_char(d, 'iw') AS week_no,
to_char(d, 'yyyy-mm') AS "yyyy-mm",
to_char(d, '"Q"q yyyy') AS "quarter"
FROM cte;
db<>fiddle demo
这个怎么运作:
  • 递归部分从 2021-01-01 生成日期行到定义的结束日期
  • 主查询生成具有正确字符串格式的列

  • 现在通过查询,您可以使用 CREATE TABLE myCalendar AS ... 实现它如果需要的话。
    如果您使用不同的 RDBMS,则模式基本相同 - 唯一的区别是使用特定于方言的功能。
    例如 PostgreSQL 有它自己的函数 generate_series :
    SELECT * /* format functions here */
    FROM generate_series(date '2021-01-01', date '2030-12-31', '1 day');
    编辑:

    How can I specify that I want a 4-4-5 calendar because from what I understand it seems you're creating a normal calendar?


    是的,这是一个普通的日历。逻辑可以重写,但您已经找到了一个可行的解决方案。

    Also I found a link to PostgreSQL for fiscal 4-4-5 github.com/sqlsunday/calendar/blob/boss/CalendarFunctions.sql but I always meet with an error running the script for function Calendar.Fiscal_4_4_5


    关键是它是在 TSQL 中作为表值函数为 SQL Server 编写的。调用它使用:
    SELECT *
    FROM Calendar.Fiscal_4_4_5 ('2021-01-01', '2030-12-31', '2021-01-01','445',1);
    db<>fiddle demo

    关于python - 如何使用python创建4-4-5会计日历?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67017473/

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