首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在日期时间格式的日期中更改年份和月份?

如何在日期时间格式的日期中更改年份和月份?
EN

Stack Overflow用户
提问于 2022-04-15 17:52:00
回答 1查看 994关注 0票数 0

我有一个(8000行),它有一个datetime格式列,其日期类似于YYYY DD。我想改变它,从一个单一的日期,多个月,多年,与同一天。

我的产出:

代码语言:javascript
复制
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

预期产出:

代码语言:javascript
复制
     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年。我试过:

代码语言:javascript
复制
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行的年份和月份,这显然不是最优的。任何帮助都将不胜感激。谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-04-15 18:41:48

基本上,您可以使用date_range创建要添加的系列:

代码语言:javascript
复制
dates = pd.Series(pd.date_range(start='1/3/2009', end='3/11/2011', freq='M'))

代之以你想要的开始和结束日期。每个月的最后一天,它会自动增加月份和年份。如果您想将一天设置为特定的日期:

代码语言:javascript
复制
dates.apply(lambda x: x.replace(day=3))

这将返回相同的内容,但所有条目的返回日期为第3天。如果您还想要一个包含重复天数的更大系列,您可以使用“重复”作为:

代码语言:javascript
复制
dates.repeat(10).reset_index(drop=True)

因此,这样,您将有相同的系列,但每一个日期重复10次。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71887295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档