在计算其他列的平均值时按“日期”分组

戴维德·坦布里诺

我有一个包含 3 列的数据框:ID、日期、Data_Value 报告温度记录(Data_Value)在给定时间段(日期 - 每天)中来自不同气象站(ID)。我需要的是每天“分组”并计算每天的平均温度,例如

ID      |   Date       | Data_Value
------------------------------------
12345   |   02-05-2017 |  22
12346   |   02-05-2017 |  24
12347   |   02-05-2017 |  20
12348   |   01-05-2017 |  18
12349   |   01-05-2017 |  16

变成:

ID      |   Date       | Data_Value
------------------------------------
.....   |   02-05-2017 | 22
.....   |   01-05-2017 | 17

有人可以帮我解决这个问题吗?

耶斯列

我认为你需要groupby和聚合mean

df = df.groupby('Date', as_index=False, sort=False)['Data_Value'].mean()
print (df)
         Date  Data_Value
0  02-05-2017          22
1  01-05-2017          17

然后如果需要也ID使用值agg

df = df.groupby('Date', as_index=False, sort=False)
       .agg({'Data_Value':'mean', 'ID':lambda x: ','.join(x.astype(str))})
       .reindex_axis(['ID','Date','Data_Value'], axis=1)
print (df)
                  ID        Date  Data_Value
0  12345,12346,12347  02-05-2017          22
1        12348,12349  01-05-2017          17

或者,如果只有ID聚合的第一个值first

df = df.groupby('Date', as_index=False, sort=False) 
       .agg({'Data_Value':'mean', 'ID':'first'}) 
       .reindex_axis(['ID','Date','Data_Value'], axis=1)
print (df)

      ID        Date  Data_Value
0  12345  02-05-2017          22
1  12348  01-05-2017          17

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按年份分组和其他列,并根据特定条件的熊猫计算平均值

按日期对数组进行分组,并计算平均值

如何按一列分组并获得其他列的平均值

根据数据框中其他列中的分组值计算列的平均值

Python Pandas:创建累积平均值,同时按其他列分组

如何分组,总结和计算列中每个其他元素的平均值?

在条件下按列分组以计算平均值

计算按列号分组的平均值

计算月份的平均值并替换其他列的值

熊猫:计算按另一列分组的列的平均值

计算按另一列值分组的列平均值的新表

将列表按给定元素分组并计算平均值

如何在Python中按两列分组,计算加权平均值,返回DataFrame

Python:按日期分组并查找数据框内一列的平均值

获取按日期分组的计数(列)平均值,但满足某些条件

MYSQL中没有日期但按另一列分组的移动平均值

根据另一列中的其他 ID 计算 R 中列的平均值

如何获得按特定列分组的列的平均值?

减去按一列分组的列的平均值

计算MySQL中其他平均值的平均值

计算平均值并将其写入其他文件

获取按1小时时间窗口分组的列的平均值

根据 Google 表格中的其他列查找平均值的计算脚本

蟒蛇。熊猫 CSV。用其他列值计算平均值

计算新列作为其他列熊猫的平均值

根据其他列中的值计算Google文档中的平均值

熊猫-移动平均值按多列分组

按多个值分组的列的平均值

分组并计算平均值,但保留所有列