5

毎日の終値に基づく株式データがあります。これらの値を Python リストに挿入し、最後の 30 回のクローズの中央値を取得できるようにする必要があります。これを行うpythonライブラリはありますか?

4

5 に答える 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 に答える