如何修改pandas date_range生成的日期序列中月份为3月的时间戳?
实现方法说明
该需求可以实现,你原来的代码没有生效主要有两点问题:
- 迭代DatetimeIndex时拿到的每个
time都是Timestamp类型的临时副本,修改副本不会同步更新原日期序列 - pandas场景下显式循环不是推荐写法,运行效率远低于向量化操作
你可以用布尔掩码+日期偏移的方式完成修改,代码如下:
import pandas as pd # 生成原始日期序列 date = pd.date_range("2008-01-01", "2021-03-31", freq = "QS-MAR") # 匹配月份为3月的所有日期 mask = date.month == 3 # 匹配到的日期统一加1个月偏移,无需手动计算天数 date[mask] = date[mask] + pd.DateOffset(months=1)
执行后所有原3月1日的日期都会调整为4月1日,其他日期保持不变。
内容的提问来源于stack exchange,提问作者vhuang1211
相关产品推荐
相关产品推荐

