小编abc*_*123的帖子

Django ORM获取字段的最大值和相应的其他列值

我有一个数据框:

`exp_no`   'time'   'price'
Run Code Online (Sandbox Code Playgroud)
  1       0:00:00     20.0
  1       7 days      45.0
  1       15 days     100.0
  2       0:00:00     20.0
  2       7 days      45.0
  2       15 days     100.0
Run Code Online (Sandbox Code Playgroud)

对应的Django模型:

class StData(models.Model):
      exp_no = models.ForeignKey(StIndex, on_delete=models.CASCADE)
      time = models.DateTimeField()
      price = models.DecimalField(max_digits=10, decimal_places=2)   
Run Code Online (Sandbox Code Playgroud)

我想制作一个较小的表,其中包含 exp_no、max_time 和相应的价格,如下所示:

 `exp_no`   'time'   'price'
Run Code Online (Sandbox Code Playgroud)
  1       15 days     100.0
  2       15 days     100.0
Run Code Online (Sandbox Code Playgroud)

在 pandas 中,我会df.groupby('exp_no')['time', 'price'].max().reset_index() 做得到想要的表。

在 Django ORM 注释中,如果我这样做,可以获得相同的结果(或查询集):

qs.values('exp_no').annotate(max_time=Max('time')).order_by()
Run Code Online (Sandbox Code Playgroud)

它给了我exp_no和时间,但我也想得到相应的价格。我已经在SO中查看了这个答案:Django orm getlatest for every group

但不知道如何得到价格。将 Django 2.0 与 sqlite3 结合使用。

我很感激任何帮助。

python django pandas

5
推荐指数
1
解决办法
3709
查看次数

标签 统计

django ×1

pandas ×1

python ×1