首页 > 解决方案 > 在日期时间中按日期过滤数据框

问题描述

大家早上好,

我目前正在编写一个机器人,它应该用数据填充基于浏览器的系统。因此,宏将数据从 excel 中提取到数据框中,并且必须首先决定需要将哪些数据放入该系统中。在此检查中,将根据当前日期检查数据框中一列的所有日期。

在此处输入图像描述

在此处输入图像描述

当前日期(“datetimeObj”)和列(“Approved until incl.”)都以日期时间格式化(根据我的理解)。 问题是此检查不适用于此消息: 在此处输入图像描述

我尝试仅使用列中的一项进行检查,然后它正在工作: 在此处输入图像描述

我希望你们中的一些人可以在这里帮助我。提前致谢,

一切顺利!甜瓜鲍尔

标签: pythonpandasdataframedatetime

解决方案


根据代码,您应该在 xlsx_import["Approved until incl."] 中有字符串

尝试跟随以查看发生了什么...

导入库:

from datetime import datetime

import pandas as pd

然后创建一个充满日期的示例字典:

date_dict = dict({'time':[datetime(2020,1,1,12,10,10),datetime(2020,1,2,12,10,10)]})

然后创建一个熊猫数据框。这个在列值上有日期

df = pd.DataFrame(date_dict)

然后我们生成一个样本日期进行测试:

date = datetime(2020,1,1,17,10,10)

然后是最后的测试:

is_older = df['time'] < date

当这样显示时:print(is_older)你不会得到任何错误,第一项为真,第二项为假

然后我们做同样的事情,但这次使用列中包含字符串而不是日期时间的数据框:

我们生成一个新的样本字典:

date_dict = dict({'time':["2020-1-1 12:10:10","2020-1-2 12:10:10"]})

然后我们创建一个用字符串填充的新数据框:

df_str = pd.DataFrame(date_dict)

最后我们对其进行测试:

is_older2 = df_str['time'] < date

出现您显示的错误。


推荐阅读