如何在Pandas中将年月格式日期转换为季度末日期?
问题修复方案
错误根源是你先把datetime类型转成了字符串,而pd.offsets.QuarterEnd偏移量只能和pandas的datetime类型数据运算,字符串无法与偏移量执行加法操作。
以下两种方法可以解决问题:
方法一:先处理偏移量再转字符串
保留datetime类型完成偏移量计算,最后再转成目标字符串格式:
# 第一步仅转为datetime类型,不转字符串 df6['Date'] = pd.to_datetime(df6['Date'], format="%Y%m") # 给日期加上季度末偏移量 df6['Date'] = df6['Date'] + pd.offsets.QuarterEnd(0) # 最后转换为需要的字符串格式 df6['Date'] = df6['Date'].dt.strftime('%Y-%m-%d')
方法二:利用周期特性直接取季度末
通过dt.to_period('Q')将日期转为季度周期,直接提取周期结束时间:
df6['Date'] = pd.to_datetime(df6['Date'], format="%Y%m") # 转为季度周期 → 提取周期结束时间 → 转为目标字符串格式 df6['Date'] = df6['Date'].dt.to_period('Q').dt.end_time.dt.strftime('%Y-%m-%d')
两种方法都能生成你需要的2020-03-31、2020-06-30这类季度末日期,可根据习惯选择使用。
内容的提问来源于stack exchange,提问作者Anthony Nguyen
相关产品推荐
相关产品推荐

