我有一个(8000行),它有一个datetime格式列,其日期类似于YYYY DD。我想改变它,从一个单一的日期,多个月,多年,与同一天。
我的产出:
0 data-1 2011-12-03
1 data-2 2011-12-03
2 data-3 2011-12-03
..
..
data-4 2011-12-03
data-5 2011-12-03
7999 data-6 2011-12-03预期产出:
val1 date
0 data-1 2009-01-03
.. 2009-02-03
2009-03-03
..
..
2009-11-03
2009-12-03
11 data-n 2010-01-03
.. 2010-02-03
2010-03-03
..
..
2010-11-03
2010-12-03
2011-01-03
.. 2011-02-03
2011-03-03
..
..
2011-11-03
7999 data-m 2011-12-03我要把它分散到12个月零5年。我试过:
df.date[0:999] = pd.to_datetime(stallion_df.date[0:999]) + pd.offsets.DateOffset(years=1)
df.date[0:999] = pd.to_datetime(stallion_df.date[0:999]) + pd.offsets.DateOffset(months=3)
... 对于8000行的年份和月份,这显然不是最优的。任何帮助都将不胜感激。谢谢
发布于 2022-04-15 18:41:48
基本上,您可以使用date_range创建要添加的系列:
dates = pd.Series(pd.date_range(start='1/3/2009', end='3/11/2011', freq='M'))代之以你想要的开始和结束日期。每个月的最后一天,它会自动增加月份和年份。如果您想将一天设置为特定的日期:
dates.apply(lambda x: x.replace(day=3))这将返回相同的内容,但所有条目的返回日期为第3天。如果您还想要一个包含重复天数的更大系列,您可以使用“重复”作为:
dates.repeat(10).reset_index(drop=True)因此,这样,您将有相同的系列,但每一个日期重复10次。
https://stackoverflow.com/questions/71887295
复制相似问题