gpt4 book ai didi

python - 在日期范围内重复每个标识符

转载 作者:行者123 更新时间:2023-12-02 02:07:05 25 4
gpt4 key购买 nike

这可能是一个非常简单的问题,但我对 python 很陌生,所以我不知道如何去做这个。假设我有一个 pandas df ,其唯一标识符为 101、201、301 和每月日期范围。我想将这些组合起来,以便每个标识符在每个日期显示一次(因此,如果每月数据为 12 个月,则生成的数据框将为 36 行)。

id = {'unique':[101,201,301]}
id_df = pd.DataFrame(id)
month = pd.date_range(start = '2020-01-01', end = '2021-1-01', freq='M')

我知道这是一个非常简单的问题,但非常感谢任何帮助!

最佳答案

您可以首先分配一个新列日期,每行为月份,然后分解它:

id_df["dates"] = [month] * len(id_df)
id_df = id_df.explode("dates", ignore_index=True)

其中我们ignore_index,因此结果索引为0..N-1

第一次操作后:

   unique                                              dates
0 101 DatetimeIndex(["2020-01-31", "2020-02-29", "20...
1 201 DatetimeIndex(["2020-01-31", "2020-02-29", "20...
2 301 DatetimeIndex(["2020-01-31", "2020-02-29", "20...

然后

>>> id_df

unique dates
0 101 2020-01-31
1 101 2020-02-29
2 101 2020-03-31
3 101 2020-04-30
4 101 2020-05-31
5 101 2020-06-30
6 101 2020-07-31
7 101 2020-08-31
8 101 2020-09-30
9 101 2020-10-31
10 101 2020-11-30
11 101 2020-12-31
12 201 2020-01-31
13 201 2020-02-29
14 201 2020-03-31
15 201 2020-04-30
16 201 2020-05-31
17 201 2020-06-30
18 201 2020-07-31
19 201 2020-08-31
20 201 2020-09-30
21 201 2020-10-31
22 201 2020-11-30
23 201 2020-12-31
24 301 2020-01-31
25 301 2020-02-29
26 301 2020-03-31
27 301 2020-04-30
28 301 2020-05-31
29 301 2020-06-30
30 301 2020-07-31
31 301 2020-08-31
32 301 2020-09-30
33 301 2020-10-31
34 301 2020-11-30
35 301 2020-12-31

(之后您可以执行 id_df = id_df.sort_values("dates",ignore_index=True, kind="mergesort") 以稳定的方式对日期进行排序。)

关于python - 在日期范围内重复每个标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68288968/

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