标签: average

如何聚合基于两列的计算平均值?

我想编写一个 Django 查询来计算表中所有行的平均值。我的模型看起来像

class StatByDow(models.Model):
    total_score = models.DecimalField(default=0, max_digits=12, decimal_places=2)
    num_articles = models.IntegerField(default=0)
    day_of_week = IntegerField(
        null=True,
        validators=[
            MaxValueValidator(6),
            MinValueValidator(0)
        ]
    )
Run Code Online (Sandbox Code Playgroud)

我尝试像这样计算平均值

everything_avg = StatByDow.objects.all().aggregate(Avg(Func(F('total_score') / F('num_articles'))))
Run Code Online (Sandbox Code Playgroud)

但这会导致错误

  File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/db/models/query.py", line 362, in aggregate
    raise TypeError("Complex aggregates require an alias")
TypeError: Complex aggregates require an alias
Run Code Online (Sandbox Code Playgroud)

计算平均值的正确方法是什么?

python django average django-orm

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

postgres STRING_AGG() 返回重复项?

我看过一些类似的帖子,请求建议以从查询中获得不同的结果。这可以通过子查询来解决,但我聚合的列image_name是唯一的image_name VARCHAR(40) NOT NULL UNIQUE。我认为这没有必要。

这是spot_images表中的数据

spotdk=# select * from spot_images;
 id | user_id | spot_id |              image_name              
----+---------+---------+--------------------------------------
  1 |       1 |       1 | 81198013-e8f8-4baa-aece-6fbda15a0498
  2 |       1 |       1 | 21b78e4e-f2e4-4d66-961f-83e5c28d69c5
  3 |       1 |       1 | 59834585-8c49-4cdf-95e4-38c437acb3c1
  4 |       1 |       1 | 0a42c962-2445-4b3b-97a6-325d344fda4a
(4 rows)
Run Code Online (Sandbox Code Playgroud)
spotdk=# select * from spot_images;
 id | user_id | spot_id |              image_name              
----+---------+---------+--------------------------------------
  1 |       1 |       1 | 81198013-e8f8-4baa-aece-6fbda15a0498
  2 |       1 |       1 | 21b78e4e-f2e4-4d66-961f-83e5c28d69c5 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql join group-by average

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

Pandas 根据每小时数据计算每日和每月平均值

我有一个 8784 x 13 的 DF (df2),看起来像这样,其中有一个 yyyy-mm-dd 格式的“日期”列和一个以小时为单位的“时间”列,如下所示,我需要计算每日和每月的平均值2016 年:

     DATE  TIME  BAFFIN BAY  GATUN II   GATUN I  KLONDIKE IIIG  \
8759 2016-01-01  0000    8.112838  3.949518  3.291540       7.629178   
8760 2016-01-01  0100    7.977169  4.028678  3.097562       7.477159   

  KLONDIKE II  LAGOA II  LAGOA I  PENASCAL II  PENASCAL I    SABINA  \
8759     7.095450       NaN      NaN     8.250527    8.911508  3.835205   
8760     7.362562       NaN      NaN     7.877099    7.858908  3.766714   

  SIERRA QUEMADA  
8759        3.405049  
8760        4.386598  
Run Code Online (Sandbox Code Playgroud)

我尝试将“DATE”列转换为日期时间以使用 groupby,但我不确定如何执行此操作。我已尝试以下操作,但当我在 Excel 中测试计算时,它没有按日或月平均预期对数据进行分组:

davg_df2 = df2.groupby(by=df2['DATE'].dt.date).mean() #
davg_df2m = df2.groupby(by=df2['DATE'].dt.month).mean() # 
Run Code Online (Sandbox Code Playgroud)

谢谢你,因为我仍在学习 …

average date pandas

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

如何获取pandas中连续值的比例?

假设我有以下 df:

col1|col2|col3
  1 |  3 |  1
  2 |  2 |  1
Run Code Online (Sandbox Code Playgroud)

我想要行的值的比例,所以 stg 像这样:

col1|col2|col3
 0.2| 0.6| 0.2
 0.4| 0.4| 0.4
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的主要问题是如何获取行的总和:

mydf["col1_proportion"] = mydf["col1"].apply(lambda x: x / (XXX)  )  
Run Code Online (Sandbox Code Playgroud)

其中 (XXX) 应该是给定行的总和

python average row sum pandas

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

计算多个列表中每第 n 个元素的平均值

我有 4 个相同长度的列表,希望对列表中的每个第 n 个元素进行平均,并根据这些平均值创建一个新列表。举个例子:

y1 = [1, 2, 2, 4, 5]
y2 = [3, 6, 9, 12, 0]
y3 = [2, 3, 4, 5, 6]
y4 = [2, 1, 5, 7, 9]
Run Code Online (Sandbox Code Playgroud)

预期结果应该是:

y1234  = [2, 3, 5, 7, 5]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python average list

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

确定单元阵列中单元的平均长度

嗨我在matlab中有一个单元格数组,其中单元格的长度不同.我如何确定细胞的平均长度.

我试过了:

mean(length(mycell{:});
Run Code Online (Sandbox Code Playgroud)

但这对于平均功能来说输入太多了.

谢谢.

matlab average cell

0
推荐指数
1
解决办法
169
查看次数

(MYSQL)从具有一定资格的学生名单中计算平均值

我想得到每个学生的平均资格.

例如,有30名学生拥有:

Pupil 1: Qualification 1: 5,6 Qualification 2: 3,2 Qualification 3: 9,1
Pupil 2: Qualification 1: 5,1 Qualification 2: 8,6 Qualification 3: 3,1
Pupil 3: Qualification 1: 1,9 Qualification 2: 7,2 Qualification 3: 5,1
Pupil 4: Qualification 1: 4,6 Qualification 2: 5,2 Qualification 3: 9,5
Run Code Online (Sandbox Code Playgroud)

等等...

我想得到:

在此输入图像描述

我试过:

select distinct pupils.name, pupils.surname, qualifications.id_trimester, round(avg(qualifications.qualification),2), count(qualifications.qualification) from pupils, qualifications where pupils.level='1' and pupils.class='A'  and qualifications.id_trimester=1 and qualifications.type_qualification='class' group by pupils.surname.
Run Code Online (Sandbox Code Playgroud)

但它显示了所有行的相同平均资格和计数.它显示了所有行中重复的第一个学生的平均资格...

表格是:

pupils:

id_pupil
name
surname
email
user
pass
level …
Run Code Online (Sandbox Code Playgroud)

php mysql sql average

0
推荐指数
1
解决办法
108
查看次数

Python 3.4 - 如何获得字典值的平均值?

我有以下字典:

StudentGrades = {
    'Ivan': [4.32, 3, 2],
    'Martin': [3.45, 5, 6],
    'Stoyan': [2, 5.67, 4],
    'Vladimir': [5.63, 4.67, 6]
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个函数来打印学生成绩的平均值,即值的平均值,但我不知道如何.你能帮我吗?

python dictionary average python-3.x

0
推荐指数
1
解决办法
3万
查看次数

为什么这个函数不能计算整数列表的平均值不起作用?

我正在尝试创建一个函数,它将给定列表中的所有数字相加,然后将其除以6.

average :: [Integer] -> Integer
average m = (sum m) quot 6
Run Code Online (Sandbox Code Playgroud)

但这是我收到的错误消息:

Couldn't match type `Integer'                                                                                
              with `(a0 -> a0 -> a0) -> a1 -> Integer'                                                       
Expected type: [(a0 -> a0 -> a0) -> a1 -> Integer]                                                           
  Actual type: [Integer]                                                                                     
In the first argument of `sum', namely `m'                                                                   
In the expression: (sum m) quot 6
Run Code Online (Sandbox Code Playgroud)

haskell integer average

0
推荐指数
1
解决办法
81
查看次数

从地图获取平均值

我试图使用Java 8从Map获取平均值,但是我没有获取值本身,而是想获得Map.Entry.

double average = totals.entrySet()
                       .stream()
                       .mapToDouble(i -> i.getValue())
                       .average()
                       .orElse(0); //Want to get Map.Entry instead
Run Code Online (Sandbox Code Playgroud)

java lambda average hashmap java-8

0
推荐指数
1
解决办法
377
查看次数

标签 统计

average ×10

python ×4

pandas ×2

sql ×2

cell ×1

date ×1

dictionary ×1

django ×1

django-orm ×1

group-by ×1

hashmap ×1

haskell ×1

integer ×1

java ×1

java-8 ×1

join ×1

lambda ×1

list ×1

matlab ×1

mysql ×1

php ×1

postgresql ×1

python-3.x ×1

row ×1

sum ×1