Pythonで圧倒された中央値
-
14-11-2019 - |
質問
私は毎日の閉じる値に基づいていくつかの在庫データを持っています。これらの値をPythonリストに挿入して、最後の30件目の中央値を取得する必要があります。これを行うPythonライブラリはありますか?
解決
Pandas を検討しましたか?これはnumpy
に基づいており、タイムスタンプを自動的にデータに関連付けることができ、numpy.nan
で記入する限り、不明な日付を廃棄します。それはまたMatplotlibを介したいくつかのかなり強力なグラフを提供します。
基本的にそれはPythonの財務分析のために設計されました。
他のヒント
Python List a
にデータを持つ純粋なPythonでは、を実行できます。
median = sum(sorted(a[-30:])[14:16]) / 2.0
.
(これはa
を持つことを想定しています。)
numpyパッケージを使用して、を使うことができます
median = numpy.median(a[-30:])
. ソートされた範囲で中央値の中央値はありませんか?
だから、あなたのリストがstock_data
の場合:
last_thirty = stock_data[-30:]
median = sorted(last_thirty)[15]
.
今すぐ見つかったエラーが見つかり、修正され、stock_data
の場合も30要素未満の場合を扱う必要があります...
ここで少し試してみましょう:
def rolling_median(data, window):
if len(data) < window:
subject = data[:]
else:
subject = data[-30:]
return sorted(subject)[len(subject)/2]
. 所属していません StackOverflow