我想date_trunc在日期时间列上使用PostgreSQL 中的函数来聚合一周内的数据。
例如,我需要每周获得销售数量。
问题是date_trunc('week', datetime_column)函数将星期一视为一周的开始日,而我的一些客户在日历中使用不同的开始日(如星期六)。
我试过
SELECT date_trunc('WEEK',(time_id + interval '2 day'))- interval '2 day' AS WEEK
Run Code Online (Sandbox Code Playgroud)
但它很乱,我认为必须有更好的方法。
我有一个以 Django 作为后端的项目。
\n\n对于客户端,我有 4 个不同的部分:
\n\n我脑子里的结构是这样的:
\n\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 djangoproject\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 settings.py (can be folder)\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 urls.py\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 wsgi.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 apps\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 admin_panel\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 core\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 auth\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 templates\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 admin_panel (react)\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 core (react)\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 auth\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 static\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 manage.py\nRun Code Online (Sandbox Code Playgroud)\n\n我有两个问题:
\n\n1-我应该更改项目的结构(例如将反应文件夹带到外面或使用前端文件夹命名而不是模板?)
\n\n2-将git 子模块用于 React 应用程序并仅在主项目中提交它们的构建是否常见(或合理) ?如果是的话,您能举出任何例子或最佳实践吗?
\n我使用 Django 2.0 和 mysql 数据库,我的项目模型是这样的:
class Parent(models.Model):
name = models.CharField()
class Child(models.Model):
number = models.IntegerField()
parent = models.ForeignKey(Parent)
Run Code Online (Sandbox Code Playgroud)
我想要的是同时将父对象和子对象保存在一起,以便在任何情况下子对象有错误(例如数字字段是“某些文本”)并且无法保存父对象不会保存。
在 Flask(使用 postgresql)中有 add(object) 和 add_all([parent, child]) 方法,我使用了 add_all 所以如果孩子有错误,父母不会保存。
但是在 Django 中我找不到这个方法。
默认方法是:
parent = Parent(name = "my name")
parent.save()
child = Child(number=3, parent=parent)
child.save()
Run Code Online (Sandbox Code Playgroud)
我想要的是这样的:
parent = Parent(name = "my name")
child = Child(number=3, parent=parent)
Run Code Online (Sandbox Code Playgroud)
进而:
child.save(with related parent)
Run Code Online (Sandbox Code Playgroud)
或者:
save(parent, child together)
Run Code Online (Sandbox Code Playgroud)
PS:我阅读了这个链接,我认为“SET”方法是我所需要的,但我不确定如何使用它以及它是否是解决方案: django关系
我想根据筛选我的数据帧time使用列的查询功能,并获取行time的最后N一个月(或任何时间段)。
基本上我需要这样的东西:
df = df.query("time.isin(timeperiod('5M'))")
Run Code Online (Sandbox Code Playgroud)
或者
df = df.query("now() >= time >= now() - timeperiod('5M')")
Run Code Online (Sandbox Code Playgroud)
我正在尝试为我的过滤器函数创建查询模式,使用query()函数很重要 。
请注意,timeperiod()和now()函数不可用,我使用它们是为了更好地理解我想要的解决方案。我的意思是请在您的解决方案中定义这些函数。
样本:
df = pd.DataFrame()
df['time1'] = pd.date_range('1/1/2019', periods=1000, freq='D')
df['time2'] = pd.date_range('1/1/2018', periods=1000, freq='D')
Run Code Online (Sandbox Code Playgroud)
示例数据可以有其他一些列。
我需要N使用query()函数过滤数据以获取上个月内每个给定列的记录。例如,我想要time1过去 2 个月和time2过去 3 个月的记录。就像获取过去 3 个月内被雇用并在过去 2 个月内被解雇的人员的记录。
更新1:
感谢@jezrael,我可以得到这样的now()功能query():
df = df.query("@pd.Timestamp('now') >= time")
Run Code Online (Sandbox Code Playgroud)
当然Timestamp可以用“to_datetime”或其他东西代替。 …