前提・実現したいこと
CSV形式で保存されているデータに対して、Pythonを用いて移動平均を求める
発生している問題・エラーメッセージ
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-18-cc023d181ada> in <module> ----> 1 dataset["3SMA"] = dataset["Close"].apply(three_SMA) 2 dataset.iloc[0:9][["Date", "Close", "3SMA"]] ~/anaconda3/lib/python3.6/site-packages/pandas/core/series.py in apply(self, func, convert_dtype, args, **kwds) 3192 else: 3193 values = self.astype(object).values -> 3194 mapped = lib.map_infer(values, f, convert=convert_dtype) 3195 3196 if len(mapped) and isinstance(mapped[0], Series): pandas/_libs/src/inference.pyx in pandas._libs.lib.map_infer() <ipython-input-17-113f80d88e95> in three_SMA(x) 1 def three_SMA(x): ----> 2 return x.rolling(window=3).mean() AttributeError: 'float' object has no attribute 'rolling'
該当のソースコード
Python3
1def three_SMA(x): 2 return x.rolling(window=3).mean() 3 4dataset["3SMA"] = dataset["Close"].apply(three_SMA) 5dataset.iloc[0:9][["Date", "Close", "3SMA"]]
試したこと
まだ、プログラミング初心者であり、どのようなことを試せるのかもわからない状況です。
dataset["Close_int"] = dataset["Close"].round().astype(int)
など、int型への変換を試みましたが、列にNullが含まれているため、型の変換自体うまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
Jupiter notebook
データセットのフォーマットに問題が有る様です。
どの様なデータセットなのか教えていただけますか?
ご覧いただき、ありがとうございます。
https://finance.yahoo.com/quote/%5EN225/history?ltr=1
米国のヤフーファイナンスからCSV形式でダウンロードした株価データを使用しています。
また、
dataset = pd.read_csv("dataset/N225(1980〜).csv")
と入力し、pandas形式のデータセットにしています。
回答2件
あなたの回答
tips
プレビュー