gpt4 book ai didi

pandas - 如何在 Pandas 中创建日历表(日期维度)

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

具有主键的日期表有时在数据库设计中使用。

| date_id |     Date       |    Record_timestamp |  Day      |  Week |  Month |     Quarter |   Year_half |     Year |
|---------+----------------+---------------------+-----------+-------+--------+-------------+-------------+----------|
| 0 | 2000-01-01 | NaN | Saturday | 52 | 1 | 1 | 1 | 2000 |
| 1 | 2000-01-02 | NaN | Sunday | 52 | 1 | 1 | 1 | 2000 |
| 2 | 2000-01-03 | NaN | Monday | 1 | 1 | 1 | 1 | 2000 |
在 Pandas 中怎么做?

最佳答案

使用 dt accessor可以使它更干净:

In [11]: def create_date_table2(start='2000-01-01', end='2050-12-31'):
...: df = pd.DataFrame({"Date": pd.date_range(start, end)})
...: df["Day"] = df.Date.dt.weekday_name
...: df["Week"] = df.Date.dt.weekofyear
...: df["Quarter"] = df.Date.dt.quarter
...: df["Year"] = df.Date.dt.year
...: df["Year_half"] = (df.Quarter + 1) // 2
...: return df

In [12]: create_date_table2().head()
Out[12]:
Date Day Week Quarter Year Year_half
0 2000-01-01 Saturday 52 1 2000 1
1 2000-01-02 Sunday 52 1 2000 1
2 2000-01-03 Monday 1 1 2000 1
3 2000-01-04 Tuesday 1 1 2000 1
4 2000-01-05 Wednesday 1 1 2000 1

In [13]: create_date_table2().tail()
Out[13]:
Date Day Week Quarter Year Year_half
18623 2050-12-27 Tuesday 52 4 2050 2
18624 2050-12-28 Wednesday 52 4 2050 2
18625 2050-12-29 Thursday 52 4 2050 2
18626 2050-12-30 Friday 52 4 2050 2
18627 2050-12-31 Saturday 52 4 2050 2

注意:您可能想即时计算它们,而不是将它们存储为列!

关于pandas - 如何在 Pandas 中创建日历表(日期维度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47150709/

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