Pandas datetime处理:将月度输入日期转换为当月月末日期
问题原因
你之前的代码存在三处错误:
- 第一版代码变量名拼写错误,输入变量是
monthyear,你误写为prevdate,且pd.to_datetime解析%B %Y格式的字符串时默认返回当月1号,所以得到的是月初日期 - 第二版代码的
MonthEnd偏移量用法逻辑有误,且只有Pandas Series对象调用日期方法需要加.dt访问器,单个Timestamp日期对象可以直接调用strftime - 你需要的输出带有斜杠分隔符,
strftime的格式符需要对应调整,用%m/%d/%Y替代原有的%m%d%Y
解决代码
首先导入需要的依赖:
import pandas as pd from pandas.tseries.offsets import MonthEnd
核心实现代码:
monthyear = input("Enter Full Month and Year: ") # 示例输入:September 2021 base_date = pd.to_datetime(monthyear, format="%B %Y") assessdate = (base_date + MonthEnd(1)).strftime('%m/%d/%Y %H:%M')
输入September 2021时,运行后assessdate的值为09/30/2021 00:00,符合预期需求。
内容的提问来源于stack exchange,提问作者Jonnyboi
相关产品推荐
相关产品推荐

