ValueError: day is out of range for month

本文详细解析了在使用Python的datetime模块进行日期格式转换时,因参数错误导致的ValueError异常,具体为'day is out of range for month'错误。通过对比正确的代码实现与错误示例,展示了如何避免此类常见错误。

ValueError: day is out of range for month

日期超出范围。

我当时使用datetime模块生成时间格式数据,手误传错参数导致的结果。所以,好好检查数据就可解决问题。

如下:

# 将字符串类型数据转化成时间结构数据
# 原想写成如下代码
import
datetime date_init = '2019-05-10 00:00:00' date_end = datetime.datetime(int(date_init.split('-')[0]), int(date_init.split('-')[1]),int(date_init.split('-')[2].split(' ')[0].lstrip('0')), int(date_init.split('-')[2].split(' ')[1].split(':')[0]), int(date_init.split('-')[2].split(' ')[1].split(':')[1]), int(date_init.split('-')[2].split(' ')[1].split(':')[2])) print date_end,type(date_end)

# 手抖写错,如下:

import datetime

date_init = '2019-05-10 00:00:00'

date_end = datetime.datetime(int(date_init.split('-')[0]), int(date_init.split('-')[1]),int(date_init.split('-')[2].split(' ')[0].lstrip('1')), int(date_init.split('-')[2].split(' ')[1].split(':')[0]), int(date_init.split('-')[2].split(' ')[1].split(':')[1]), int(date_init.split('-')[2].split(' ')[1].split(':')[2]))

print date_end,type(date_end)

导致出错。

其实.lstrip('0')可以不加,当时考虑给datetime.datetime(2019,05,05,00,00,00)这样加参数是错的,就加了。

结束!

posted @ 2019-05-10 21:51 aaronthon 阅读( ...) 评论( ...) 编辑 收藏
Traceback (most recent call last): File "pandas\_libs\tslibs\parsing.pyx", line 679, in pandas._libs.tslibs.parsing.dateutil_parse ValueError: day is out of range for month The above exception was the direct cause of the following exception: Traceback (most recent call last): File "d:/虚拟c盘/大学/竞赛/数学建模/2023年C题/C235问题二prophet.py", line 300, in <module> main() File "d:/虚拟c盘/大学/竞赛/数学建模/2023年C题/C235问题二prophet.py", line 286, in main prophet_results = prophet_analysis_with_visualization(target_category='花叶类') File "d:/虚拟c盘/大学/竞赛/数学建模/2023年C题/C235问题二prophet.py", line 131, in prophet_analysis_with_visualization df = sales_df[['ds', col]].rename(columns={col: 'y'}).query('y > 0') File "D:\lib\site-packages\pandas\core\frame.py", line 4440, in query res = self.eval(expr, **kwargs) File "D:\lib\site-packages\pandas\core\frame.py", line 4566, in eval return _eval(expr, inplace=inplace, **kwargs) File "D:\lib\site-packages\pandas\core\computation\eval.py", line 336, in eval parsed_expr = Expr(expr, engine=engine, parser=parser, env=env) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 809, in __init__ self.terms = self.parse() File "D:\lib\site-packages\pandas\core\computation\expr.py", line 828, in parse return self._visitor.visit(self.expr) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 415, in visit return visitor(node, **kwargs) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 421, in visit_Module return self.visit(expr, **kwargs) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 415, in visit return visitor(node, **kwargs) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 424, in visit_Expr return self.visit(node.value, **kwargs) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 415, in visit return visitor(node, **kwargs) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 719, in visit_Compare return self.visit(binop) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 415, in visit return visitor(node, **kwargs) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 537, in visit_BinOp v = Timestamp(ensure_decoded(v)) File "pandas\_libs\tslibs\timestamps.pyx", line 1667, in pandas._libs.tslibs.timestamps.Timestamp.__new__ File "pandas\_libs\tslibs\conversion.pyx", line 280, in pandas._libs.tslibs.conversion.convert_to_tsobject File "pandas\_libs\tslibs\conversion.pyx", line 557, in pandas._libs.tslibs.conversion.convert_str_to_tsobject File "pandas\_libs\tslibs\parsing.pyx", line 329, in pandas._libs.tslibs.parsing.parse_datetime_string File "pandas\_libs\tslibs\parsing.pyx", line 683, in pandas._libs.tslibs.parsing.dateutil_parse pandas._libs.tslibs.parsing.DateParseError: day is out of range for month: 0 PS C:\Users\青云\AppData\Local\Programs\Microsoft VS Code> & D:\python.exe d:/虚拟c盘/大学/竞赛/数学建模/2023年C题/C235问题二prophet.py d:/虚拟c盘/大学/竞赛/数学建模/2023年C题/C235问题二prophet.py:17: MatplotlibDeprecationWarning: The seaborn styles shipped by Matplotlib are deprecated since 3.6, as they no longer correspond to the styles shipped by seaborn. However, they will remain available as 'seaborn-v0_8-<style>'. Alternatively, directly use the seaborn API instead. plt.style.use('seaborn-whitegrid') ====================================================================== 开始执行蔬菜销售预测分析程序 ====================================================================== [22:51:07] 步骤 1: 开始数据预处理 [22:51:07] 步骤 1.1: 读取附件1和附件2数据 [22:51:45] 步骤 1.2: 合并数据集: 单品编码=251条, 销售记录=878503条 [22:51:45] 步骤 1.3: 处理退货数据 [22:51:45] 步骤 1: 数据预处理完成, 共处理878503条记录 [22:51:45] 步骤 2: 开始创建透视表 [22:51:45] 步骤 2.1: 计算每日指标 [22:51:45] 步骤 2.2: 计算退货率 [22:51:45] 步骤 2.3: 创建透视表 [22:51:45] 步骤 2: 透视表创建完成 [22:51:45] 步骤 3: 开始保存结果 [22:51:45] 步骤 3.1: 保存 price 数据到: D:\虚拟c盘\大学\竞赛\数学建模\2023年C题\C235问题二output_price.xlsx [22:51:48] 步骤 3.1: 保存 vol 数据到: D:\虚拟c盘\大学\竞赛\数学建模\2023年C题\C235问题二output_vol.xlsx [22:51:51] 步骤 3.1: 保存 sales 数据到: D:\虚拟c盘\大学\竞赛\数学建模\2023年C题\C235问题二output_sales.xlsx [22:51:54] 步骤 3: 结果保存完成 [22:51:54] 步骤 5: 开始Prophet时间序列分析 [22:51:54] 步骤 4: 开始Prophet分析 [22:51:54] 步骤 4.1: 读取预处理数据 [22:51:56] 步骤 4.2: 验证和清洗日期数据 [22:51:56] 步骤 4.2: 移除了 0 条无效日期记录 [22:51:56] 步骤 4.2: 有效日期范围: 2020-07-01 00:00:00 到 2023-06-30 00:00:00 [22:51:56] 步骤 4.2: 开始分析 4 个品类 [22:51:56] 步骤 4.2: 分析品类 1/4: ds Traceback (most recent call last): File "pandas\_libs\tslibs\parsing.pyx", line 679, in pandas._libs.tslibs.parsing.dateutil_parse ValueError: day is out of range for month The above exception was the direct cause of the following exception: Traceback (most recent call last): File "d:/虚拟c盘/大学/竞赛/数学建模/2023年C题/C235问题二prophet.py", line 324, in <module> main() File "d:/虚拟c盘/大学/竞赛/数学建模/2023年C题/C235问题二prophet.py", line 310, in main prophet_results = prophet_analysis_with_visualization(target_category='花叶类') File "d:/虚拟c盘/大学/竞赛/数学建模/2023年C题/C235问题二prophet.py", line 155, in prophet_analysis_with_visualization df = sales_df[['ds', col]].rename(columns={col: 'y'}).query('y > 0') File "D:\lib\site-packages\pandas\core\frame.py", line 4440, in query res = self.eval(expr, **kwargs) File "D:\lib\site-packages\pandas\core\frame.py", line 4566, in eval return _eval(expr, inplace=inplace, **kwargs) File "D:\lib\site-packages\pandas\core\computation\eval.py", line 336, in eval parsed_expr = Expr(expr, engine=engine, parser=parser, env=env) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 809, in __init__ self.terms = self.parse() File "D:\lib\site-packages\pandas\core\computation\expr.py", line 828, in parse return self._visitor.visit(self.expr) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 415, in visit return visitor(node, **kwargs) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 421, in visit_Module return self.visit(expr, **kwargs) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 415, in visit return visitor(node, **kwargs) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 424, in visit_Expr return self.visit(node.value, **kwargs) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 415, in visit return visitor(node, **kwargs) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 719, in visit_Compare return self.visit(binop) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 415, in visit return visitor(node, **kwargs) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 537, in visit_BinOp return self._maybe_evaluate_binop(op, op_class, left, right) File "D:\lib\site-packages\pandas\core\computation\expr.py", line 504, in _maybe_evaluate_binop res = op(lhs, rhs) File "D:\lib\site-packages\pandas\core\computation\ops.py", line 380, in __init__ self.convert_values() File "D:\lib\site-packages\pandas\core\computation\ops.py", line 478, in convert_values v = Timestamp(ensure_decoded(v)) File "pandas\_libs\tslibs\timestamps.pyx", line 1667, in pandas._libs.tslibs.timestamps.Timestamp.__new__ File "pandas\_libs\tslibs\conversion.pyx", line 280, in pandas._libs.tslibs.conversion.convert_to_tsobject File "pandas\_libs\tslibs\conversion.pyx", line 557, in pandas._libs.tslibs.conversion.convert_str_to_tsobject File "pandas\_libs\tslibs\parsing.pyx", line 329, in pandas._libs.tslibs.parsing.parse_datetime_string File "pandas\_libs\tslibs\parsing.pyx", line 683, in pandas._libs.tslibs.parsing.dateutil_parse pandas._libs.tslibs.parsing.DateParseError: day is out of range for month: 0
最新发布
08-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值