每N行找出平均温度分组

哈维尔·桑多

我有以下数据帧,其中每小时的温度在不同的坐标下:

df.head
Out[63]: 
time                  latitude  longitude     t2m                                             
2018-01-01 00:00:00      72.0      -11.0  -3.957336
2018-01-01 01:00:00      72.0      -11.0  -4.165466
2018-01-01 02:00:00      72.0      -11.0  -4.562500
2018-01-01 03:00:00      72.0      -11.0  -4.860107
2018-01-01 04:00:00      72.0      -11.0  -5.155762
                      ...        ...        ...
2018-12-31 19:00:00      34.0       32.0  16.527161
2018-12-31 20:00:00      34.0       32.0  16.639832
2018-12-31 21:00:00      34.0       32.0  16.700165
2018-12-31 22:00:00      34.0       32.0  16.592102
2018-12-31 23:00:00      34.0       32.0  16.724670

我想找到每对坐标的每日平均温度。为此,我需要每24行进行分组并找到t2m的均值,同时在time列和latitudeandlongitude列中保留唯一的日期那是,

df.head
Out[63]: 
time           latitude  longitude        t2m                                               
2018-01-01      72.0       -11.0       -6.378744
2018-01-01      71.75      -11.0       -5.564683
                ...          ...           ...
2018-12-31      33.75       31.75      16.836736
2018-12-31      34.0        32.0       16.836736

我试着做

N=24
test=df.groupby(df.index//N).mean()

但是我知道了TypeError: cannot perform __floordiv__ with this index type: DatetimeIndex我尝试重置索引并重复该操作,但是time在添加其余部分时会删除该列。

最好的方法是什么?任何帮助将非常感激。先感谢您。

编辑:使用@Shubham Sharma的建议,我尝试做

df.reset_index(inplace=True)
N=24
test=df.groupby([df.index//N, 'latitude', 'longitude']).mean()

它会找到正确的平均值,但会完全删除该time列。

彼得·D

通常,它使用起来更简单,更通用pd.Grouper(freq='D')

从您的数据片段中,尚不清楚您的数据框是否具有索引。如果有,那么df.head()(而不是df.headBTW)将显示:

                     latitude  longitude       t2m
time                                     <--- notice the new line                                             
2018-01-01 00:00:00      72.0      -11.0 -3.957336
2018-01-01 01:00:00      72.0      -11.0 -4.165466
2018-01-01 02:00:00      72.0      -11.0 -4.562500
2018-01-01 03:00:00      72.0      -11.0 -4.860107
2018-01-01 04:00:00      72.0      -11.0 -5.155762

如果没有,df.head()则将显示默认值RangeIndex

                 time  latitude  longitude       t2m
0 2018-01-01 00:00:00      72.0      -11.0 -3.957336
1 2018-01-01 01:00:00      72.0      -11.0 -4.165466
2 2018-01-01 02:00:00      72.0      -11.0 -4.562500
3 2018-01-01 03:00:00      72.0      -11.0 -4.860107
4 2018-01-01 04:00:00      72.0      -11.0 -5.155762

在任一情况下:

如果time是索引,则:

out = df.groupby([pd.Grouper(freq='D'), 'latitude', 'longitude']).mean()
# out:
                                    t2m
time       latitude longitude          
2018-01-01 72.0     -11.0     -4.540234

如果time只是常规列:

out = df.groupby([pd.Grouper(key='time', freq='D'), 'latitude', 'longitude']).mean()
# out:
                                    t2m
time       latitude longitude          
2018-01-01 72.0     -11.0     -4.540234

在这两种情况下,您都可以将结果从具有MultiIndex变为表型数据框:

out = out.reset_index()
# out:
        time  latitude  longitude       t2m
0 2018-01-01      72.0      -11.0 -4.540234

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

枢纽分析表可找出大型资料集中的最高,最低,平均温度

来自分类Dev

返回代表比邮政编码平均温度高的天数的行

来自分类Dev

文件python中年和月数据的平均温度

来自分类Dev

如何从测量列表中提取每天的平均温度?

来自分类Dev

计算同一行中开始和结束日期的平均温度(来自其他数据集)

来自分类Dev

每n行平均bash

来自分类Dev

我的笔记本电脑平均温度为75摄氏度。正常吗?

来自分类Dev

我的笔记本电脑平均温度为75摄氏度。正常吗?

来自分类Dev

一段时间内每天mysql的平均温度

来自分类Dev

按列平均每N行

来自分类Dev

每n行熊猫分组模式

来自分类Dev

统计:根据每天100多个机场站的测量值估算美国人口加权平均温度

来自分类Dev

Excel中每n行的平均值

来自分类常见问题

如何找到数据库中分组列的每一行的平均值

来自分类Dev

如何找到数据库中分组列的每一行的平均值

来自分类Dev

每 2 行 SQL 分组

来自分类Dev

找出与重复行平均值的差异

来自分类Dev

Excel - 每 3 行平均并每 3 行插入答案

来自分类Dev

如何获得每列的平均值,逐个分组?

来自分类Dev

快速获取.npy数组中每N行平均值的快速方法

来自分类Dev

如何获取每n行的平均值并保持日期索引?

来自分类Dev

R-如何平均ID长的数据中的每n行?

来自分类Dev

mysql-每n行具有相同ID的平均值

来自分类Dev

如何对每n行分组并求和,但将原始结构保留在熊猫中

来自分类Dev

获取每N组的平均值

来自分类Dev

R:每N个月按数据分组

来自分类Dev

MYSQL平均N行

来自分类Dev

MYSQL平均N行

来自分类Dev

每n行对Excel求和