Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的滚动中值_Python_Finance_Quantitative Finance_Pandas - Fatal编程技术网

python中的滚动中值

python中的滚动中值,python,finance,quantitative-finance,pandas,Python,Finance,Quantitative Finance,Pandas,我有一些基于每日收盘价的股票数据。我需要能够将这些值插入到python列表中,并获得最近30次收盘的中值。有一个python库可以做到这一点吗?在纯python中,将数据放在python列表a中,您可以这样做 median = sum(sorted(a[-30:])[14:16]) / 2.0 (假设a至少有30项。) 使用NumPy包,您可以使用 median = numpy.median(a[-30:]) 中位数不就是排序范围内的中间值吗 因此,假设您的列表是stock\u data:

我有一些基于每日收盘价的股票数据。我需要能够将这些值插入到python列表中,并获得最近30次收盘的中值。有一个python库可以做到这一点吗?

在纯python中,将数据放在python列表
a
中,您可以这样做

median = sum(sorted(a[-30:])[14:16]) / 2.0
(假设
a
至少有30项。)

使用NumPy包,您可以使用

median = numpy.median(a[-30:])

中位数不就是排序范围内的中间值吗

因此,假设您的列表是
stock\u data

last_thirty = stock_data[-30:]
median = sorted(last_thirty)[15]
现在,您只需找到并修复一个错误,还需要处理
stock\u data
少于30个元素的情况

让我们在这里试一下:

def rolling_median(data, window):
    if len(data) < window:
       subject = data[:]
    else:
       subject = data[-30:]
    return sorted(subject)[len(subject)/2]
def滚动中位数(数据,窗口):
如果len(数据)<窗口:
主题=数据[:]
其他:
主题=数据[-30:]
已排序的返回(主题)[len(主题)/2]
您考虑过吗?它基于
numpy
,可以自动将时间戳与数据关联,并丢弃任何未知日期,只要您用
numpy.nan
填充即可。它还通过matplotlib提供了一些相当强大的绘图功能


基本上,它是为python中的财务分析而设计的。

对最后29个值进行中值运算会更有效。如果30是一个任意的选择,那么如果你选择奇数窗口大小,你可以避免计算中间两个的平均值。这就是为什么有一个专门的库很好,这样我就不用担心我的算法中有错误而操纵我的偏好。看起来熊猫可以处理任意的时间间隔和数据的时间戳。美好的同意,但我的观点是:了解您使用的算法通常可以提高性能。值得记住的是,如果/当你需要沿着这条路走得更远时……对于一个数值为偶数的列表,中间值是两个中间值的平均值。很好: