尝试为存储在netcdf中的栅格数据的每月时间序列提取包含区域区域的shapefile图层内的区域信息。 到目前为止,我只能提取每个shapefile在所有时间段的平均值(见下文)。但实际上我想要的是每个地区的月平均值。 最终的目标是将其放在一个pandas地理数据框架中,然后我可以将其与每个区域的一些属性数据合并。我不太习惯使用netcdfs,所以任何建议都会很有帮助!netcdf中的时间维度是'yyyy-mm-dd‘格式。 #import netcdf data
with rio.open('/MSLA_all_test.nc') as msla_nc:
我创建了一个DatetimeIndex,并希望使用该索引对数据进行重新采样。当我这样做的时候,我得到了一个异常:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pandas-0.8.1-py2.7-linux-i686.egg/pandas/core/generic.py", line 188, in resample
limit=limit, b
当你想在python中根据时间戳对数据进行重采样时,pandas的重采样函数很容易使用。例如,从一个以秒为单位的时间戳的dataframe1到另一个重采样到10分钟的平均值。
df1_10m=df1.resample('10T', how='mean')
现在我需要在matlab中做同样的事情,但我没有找到一种明确的方法。
函数重采样似乎是另一回事。
我尝试了重塑,但我得到了错误。
function[Data_10mean]=resamp(table)
table.ts=datestr(table.ts); % format the time stamp
Tab
这是一个在xarray和pandas中重采样时间序列的MWE。10Min重采样在xarray中需要6.8秒,在pandas中需要0.003秒。有什么方法可以让x数组中的Pandas速度提高吗?熊猫的重采样似乎独立于这个时期,而x阵列则随着时间的推移而变化。
import numpy as np
import xarray as xr
import pandas as pd
import time
def make_ds(freq):
size = 100000
times = pd.date_range('2000-01-01', periods=size,
请您告诉我,当我得到错误时,下列情况有什么问题:
ValueError:不能用方法或限制重新索引非唯一索引
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import pandas_datareader as web
data= web.get_data_yahoo("BTC-USD",
start = "2015-01-01 ",
end = "202
我有一些被划分为event-related.的值所以并不是每分钟都有相同数量的数据。为了能够更好地处理这些数据,我的目标是只有每分钟取第一行值。
从csv导入数据的时间如下所示:
时间
2011年11月11日11:11
2011年11月11日11:11
2011年11月11日11:11
2011年11月11日11:12
2011年11月11日11:12
2011年11月11日11:13
其他的数值是温度。一个主要的问题是以正确的格式导入时间。我试图用这样的方法来解决这个问题:
with open('my_file.csv','r') as file:
for l
我已经将每天的ohlcv数据重放到每周和每月,以获得周和月的%返回。
现在我意识到,当我把它重新整理到日常生活中时,我在每个月的每一天都没有价值,这当然是有道理的。但我不知道如何在保持每周和每月的百分比的同时,把这些数据转回来。你们认为什么是最好的方法,因为我想把这个应用于前50种货币的市场上限。
对不起,我是一条蟒蛇/熊猫
import pandas as pd
import datetime
import pandas_datareader.data as web
import numpy as np
df = pd.read_csv("ethusdt.csv",parse
我想比较两个随机过程的时间轨迹的功率谱,但返回的频率范围不同。 如何选择频率范围,以及如何修改它? 更具体地说,我所做的事情如下: from scipy import signal as sgn
spectrum1=sgn.periodogram(signal1,fs=fs1)
spectrum2=sgn.periodogram(signal2,fs=fs2) 我的问题是,相对于spectrum2[0],spectrum1[0]的范围有很大的不同。
这里是一个带有多索引列的Pandasv0.14.0数据帧。
> import pandas as pd
> import numpy as np
>
> rng = pd.date_range('1/1/2001', periods=6, freq='H')
> mi = [(dt, i) for dt in rng for i in range(2)]
> f = pd.DataFrame(np.random.randn(len(mi), 2),
> index = pd.MultiIndex.from_tuples
我正在处理表示向量(幅度和方向)的时序数据。我想要我的数据,并使用describe函数作为how参数。
但是,describe方法使用标准平均值,我想使用一个特殊的函数来平均方向。因此,我在pandas.Series.describe()实现的基础上实现了我自己的describe方法
def directionAverage(x):
result = np.arctan2(np.mean(np.sin(x)), np.mean(np.cos(x)))
if result < 0:
result += 2*np.pi
return result
d
我有一个带有一个列的dataframe,这是一个时间戳。我使用熊猫to_datetime()方法将该列转换为datetime对象。然而,我想要的是count, for each time stamp, the number of timestamps that fall between this timestamp and prior 15 minutes。
例如:如果时间戳为(208,7,6,13,55) 年、月、日、时、分钟格式,那么我想要计算这个时间戳和时间戳之间的时间戳(或数据点)数量(208,7,6,13,40)。
很容易看出需要做什么,但是它涉及反复遍历数据集。我有将近75万个数据
pandas支持多种频率的重采样。要在DolphinDB中实现类似pandas的重采样,我可以使用group-by子句,其中group-by列是对时间列的函数调用。例如,要使用月份频率进行重采样,我可以编写如下SQL:
select count(*) from t group by month(myDate)
当涉及到周频率时,事情就有点不同了,因为DolphinDB没有像week这样的函数。此外,我希望在一周中的特定日期重新采样,例如,星期二。
我正在寻找一种大规模(数千万或数亿条数据记录)的resample time series数据的解决方案。Pandas resample()运行良好,直到达到大约10MIO数据记录,之后它实际上停止了工作,因为硬件没有足够的内存。我在大数据集上使用Pandas时遇到过几次这个问题。但是如果我只是在巨大的数据集上使用for循环,我就可以读取数据并使用它,即使它要慢得多。有没有人知道没有pandas的resample time series data的好解决方案
数据的来源是MySQL服务器,记录包含OHLC数据和时间戳。时间序列的频率是1分钟,重采样频率是5min,30min,1h,6h,1d,1
我有一个数据框,我需要每8小时计算一次臭氧的平均值。问题是,在我执行重采样之后的列(‘readable time')消失了,并且在重采样之后不能被引用。
import pandas as pd
data = pd.read_csv("o3_new.csv")
del data['latitude']
del data['longitude']
del data['altitude']
sensor_name = "o3"
data['readable time'] = pd.to_da