我想编写一个django-orm来过滤datetime字段和其他一些字段。然后将其转换为pandas数据框。 该代码可以正常工作:
order_order_df =
pd.DataFrame(list(Order.objects.filter(canceled=False,
order_time__isnull=False).values()))
但是此代码不起作用:
order_order_df =
pd.DataFrame(list(Order.objects.filter(canceled=False,
order_time__isnull=False,
order_time__gte=datetime(2018, 10, 1)).values()))
为什么会这样?如何过滤日期时间并将其正确转换为熊猫? 注意: 我知道在转换为熊猫后可以对其进行正确过滤,但我需要在此处通过queryset来完成。
答案 0 :(得分:2)
我想您已经像这样导入了datetime
import datetime
因此您无法调用datetime()
–您将需要datetime.datetime
:
order_order_df = pd.DataFrame(
list(
Order.objects.filter(
canceled=False,
order_time__isnull=False,
order_time__gte=datetime.datetime(2018, 10, 1),
).values()
)
)
答案 1 :(得分:0)
为防止这些错误:
TypeError:过滤日期时间后无法调用“模块”对象 AttributeError:只能将.str访问器与字符串一起使用
使用此代码:
order_order_df = pd.DataFrame(
list(
Order.objects.filter(
canceled=False,
order_time__isnull=False,
).exclude(
order_time__lte=datetime.datetime(2018, 10, 1)
).values()
)
)