毎日の終値に基づく株式データがあります。これらの値を Python リストに挿入し、最後の 30 回のクローズの中央値を取得できるようにする必要があります。これを行うpythonライブラリはありますか?
質問する
4902 次
5 に答える
10
純粋な Python では、Python lista
にデータがあれば、次のことができます。
median = sum(sorted(a[-30:])[14:16]) / 2.0
a
(これは、少なくとも 30 個のアイテムがあることを前提としています。)
NumPy パッケージを使用すると、
median = numpy.median(a[-30:])
于 2011-03-30T12:29:49.010 に答える
5
パンダについて考えたことはありますか?に基づいてnumpy
おり、タイムスタンプをデータに自動的に関連付けることができ、不明な日付を入力している限り破棄しますnumpy.nan
。また、matplotlib を介してかなり強力なグラフを提供します。
基本的に、Python での財務分析用に設計されています。
于 2011-03-30T12:32:22.860 に答える
2
中央値は、ソートされた範囲のちょうど中間値ではありませんか?
stock_data
したがって、リストが次のとおりであると仮定します。
last_thirty = stock_data[-30:]
median = sorted(last_thirty)[15]
ここで必要なのは、1 つずれているエラーを見つけて修正し、stock_data
要素が 30 未満の場合を処理することだけです...
ここで少し試してみましょう。
def rolling_median(data, window):
if len(data) < window:
subject = data[:]
else:
subject = data[-30:]
return sorted(subject)[len(subject)/2]
于 2011-03-30T12:30:22.103 に答える