在 R 中,您可以使用指定的窗口计算滚动平均值,该窗口每次可以移动指定的量。
但是,也许我只是没有在任何地方找到它,但您似乎无法在 Pandas 或其他 Python 库中找到它?
有谁知道解决这个问题的方法?我会给你一个例子来说明我的意思:
这里我们有双周数据,我正在计算两个月移动平均线,该移动平均线移动 1 个月,即 2 行。
所以在 RI 中会做类似的事情:two_month__movavg=rollapply(mydata,4,mean,by = 2,na.pad = FALSE)
Python 中没有等价物吗?
编辑1:
DATE A DEMAND ... AA DEMAND A Price
0 2006/01/01 00:30:00 8013.27833 ... 5657.67500 20.03
1 2006/01/01 01:00:00 7726.89167 ... 5460.39500 18.66
2 2006/01/01 01:30:00 7372.85833 ... 5766.02500 20.38
3 2006/01/01 02:00:00 7071.83333 ... 5503.25167 18.59
4 2006/01/01 02:30:00 6865.44000 ... 5214.01500 17.53
Run Code Online (Sandbox Code Playgroud) 我目前已经下载了120个文件(10年,每月)的csv数据.
我正在使用下面的一些代码将所有这些合并到一个按时间顺序排列的文档中,例如从1/1/09到1/1/19.
from glob import glob
files = sorted(glob('*.csv'))
with open('cat.csv', 'w') as fi_out:
for i, fname_in in enumerate(files):
with open(fname_in, 'r') as fi_in:
if i_line > 0 or i == 0:
fi_out.write(line)
Run Code Online (Sandbox Code Playgroud)
这很好用,但是我知道除了不同的产品外,我还下载了相同类型的数据.我还按时间顺序订购了所有这些新数据,但是将它与旧的数据集并排.
我收到如下错误:
任何帮助,将不胜感激.
EDIT1:
Traceback (most recent call last):
File "/Users/myname/Desktop/collate/asdas.py", line 4, in <module>
result = pd.merge(data1[['REGION', 'TOTALDEMAND', 'RRP']], data2, on='SETTLEMENTDATE')
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/reshape/merge.py", line 61, in merge
validate=validate)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/reshape/merge.py", line 551, in __init__
self.join_names) = self._get_merge_keys()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/reshape/merge.py", line 871, in _get_merge_keys
lk, stacklevel=stacklevel))
File …Run Code Online (Sandbox Code Playgroud)