相关疑难解决方法(0)

从netcdf文件获取每月的每小时平均值

我有一个netCDF文件,其时间维度包含2小时的数据.我希望平均每小时获得每小时的平均时数.我试过这个:

import xarray as xr
ds = xr.open_mfdataset('ecmwf_usa_2015.nc')    
ds.groupby(['time.month', 'time.hour']).mean('time')
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

*** TypeError: `group` must be an xarray.DataArray or the name of an xarray variable or dimension
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?如果我这样做:

ds.groupby('time.month', 'time.hour').mean('time')
Run Code Online (Sandbox Code Playgroud)

我没有得到错误,但结果的时间维度为12(每个月一个值),而我想要每个月的小时平均值,即每12个月24个值.数据可在此处获取:https://www.dropbox.com/s/yqgg80wn8bjdksy/ecmwf_usa_2015.nc?dl = 0

python netcdf xarray

9
推荐指数
3
解决办法
935
查看次数

熊猫组按时间窗口

编辑:使用pandas从日志文件分析生成会话似乎正是我正在寻找的.

我有一个包含非唯一时间戳的数据帧,我想按时间窗口对它们进行分组.基本逻辑是 -

1)通过在时间戳之前和之后添加n分钟,从每个时间戳创建时间范围.

2)按重叠的时间范围分组.这里的最终效果是时间窗口将小到单个时间戳+/-时间缓冲区,但是时间窗口的大小没有上限,只要多个事件的距离小于时间缓冲区

感觉就像df.groupby(pd.TimeGrouper(minutes = n))是正确的答案,但我不知道如何让TimeGrouper在看到时间缓冲区内的事件时创建动态时间范围.

例如,如果我在一组事件中尝试使用TimeGrouper('20s'):10:3​​4:00,10:34:08,10:34:08,10:34:15,10:34:28和10 :34:54,那么大熊猫会给我三组(事件发生在10:34:00 - 10:34:20,10:34:20-10:34:40和10:34:40-10:35之间:00).我想回到两个小组,10:34:00-10:34:28,因为在那个时间范围内事件之间的差距不超过20秒,第二组是10:34:54 .

查找时间范围不是静态时间范围的时间窗口的最佳方法是什么?

鉴于系列看起来像 -

      time
0     2013-01-01 10:34:00+00:00
1     2013-01-01 10:34:12+00:00
2     2013-01-01 10:34:28+00:00
3     2013-01-01 10:34:54+00:00
4     2013-01-01 10:34:55+00:00
5     2013-01-01 10:35:19+00:00
6     2013-01-01 10:35:30+00:00
Run Code Online (Sandbox Code Playgroud)

如果我在该系列赛上进行df.groupby(pd.TimeGrouper('20s')),我会回到5组,10:34:00-:20,:20-:40,:40-10:35: 00,等等.我想要做的是创建弹性时间范围的功能..只要事件在20秒内,扩展时间范围.所以我希望能回来 -

2013-01-01 10:34:00 - 2013-01-01 10:34:48 
    0 2013-01-01 10:34:00+00:00
    1 2013-01-01 10:34:12+00:00
    2 2013-01-01 10:34:28+00:00

2013-01-01 10:34:54 - 2013-01-01 10:35:15
    3 2013-01-01 10:34:54+00:00
    4 2013-01-01 10:34:55+00:00

2013-01-01 10:35:19 - 2013-01-01 10:35:50
    5 2013-01-01 10:35:19+00:00
    6 2013-01-01 10:35:30+00:00
Run Code Online (Sandbox Code Playgroud)

谢谢.

python pandas

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

标签 统计

python ×2

netcdf ×1

pandas ×1

xarray ×1