pandas 基于指定的行间隔创建日期变量

t1qtbnec  于 2023-03-11  发布在  其他
关注(0)|答案(2)|浏览(116)

如何使用以下规范创建一个附加的Date列:

  • 2020年1月1日起
  • Date每125行增加1天

实际的数据集要比这个大得多,因此Date可能涵盖多个年份。

RandomNumberList = np.random.randint(1,10,250)
pd.DataFrame(RandomNumberList, columns = ["Value"])
piwo6bdm

piwo6bdm1#

如果需要重复每个日期125次:

date_rangeIndex.repeat的任意长度DataFrame的通用解决方案,如果长度不可分,则添加1值:

N = 125
r = pd.date_range('2020-01-01', periods=len(df) // N + 1)

df['Date'] = r.repeat(N)[:len(df)]

如果df的长度可被125整除,则应简化解:
x一个一个一个一个x一个一个二个x

如果需要重复125个日期时间:

N = 125
r = pd.date_range('2020-01-01', periods=N)

df['Date'] = np.tile(r, len(df) // N + 1)[:len(df)]
print (df)
     Value       Date
0        9 2020-01-01
1        2 2020-01-02
2        1 2020-01-03
3        2 2020-01-04
4        8 2020-01-05
..     ...        ...
245      2 2020-04-30
246      6 2020-05-01
247      3 2020-05-02
248      8 2020-05-03
249      9 2020-05-04

[250 rows x 2 columns]
o8x7eapl

o8x7eapl2#

如果你想要一个彻底的知识,阅读由耶斯列写的答案。

import numpy as np
import pandas as pd
from pandas import DataFrame as df

RandomNumberList = np.random.randint(1,10,250)
df = pd.DataFrame(RandomNumberList, columns = ["Value"])

df['Date'] = np.repeat(pd.date_range('2020-01-01', periods=2), 125)
print(df)

"""
     Value       Date
0        7 2020-01-01
1        1 2020-01-01
2        5 2020-01-01
3        3 2020-01-01
4        4 2020-01-01
..     ...        ...
245      6 2020-01-02
246      9 2020-01-02
247      7 2020-01-02
248      7 2020-01-02
249      8 2020-01-02

[250 rows x 2 columns]

"""

相关问题