pythonで株価予測にチャレンジしているのですがそのデータを準備する際のエラーの解決法がわからず悩んでいます。
#日経平均株価の過去のCSVデータをとってくる import pandas as pd from io import StringIO #StringIOを使うと文字列をファイルのように扱える import urllib #urlを扱うモジュールを集めたパッケージ url = "https://indexes.nikkei.co.jp/nkave/historical/nikkei_stock_average_daily_jp.csv" def read_csv(url): res = urllib.request.urlopen(url) #URLをオープンする res = res.read().decode('shift_jis')#文字コードをshift_jis(日本語を表すために多く用いられていた文字コード)に変換する df = pd.read_csv(StringIO(res)) return df df = read_csv(url) #時系列データの主値に注目して予測。 #indexを日付にした後、時系列に。 #カラムから'始値', '高値', '安値'を取り除いて、日付が古い順に並べ出力。 #df 行列データを取り扱うときは Pandas モジュールのデータフレーム型を利用すると便利 #各行ごとの平均や列名で列を抽出したりすることが簡単に行える #インデックスを日付にし、時系列にする df["データ日付"] = pd.to_datetime(df["データ日付"], format = '%Y/%m/%d') df = df.set_index('データ日付') df = df.drop(['始値','高値','安値'], axis = 1) df = df.iloc[::-1] df print(df) コード
エラーは ValueError: time data '本資料は日経の著作物であり、本資料の全部又は一部を、いかなる形式によっても日経に無断で複写、複製、転載または流布することができません。' doesn't match format specified と出てきます。 確かにこのデータを確認すると907行目にこの日本語が書かれており df.drop(907)を試しましたが 同じエラーでした。 このエラーの解決法、そしてdf = df.iloc[::-1]のコードの説明もしてただけると嬉しいです。
まだプログラミング歴が2ヶ月のため、わかりにくい箇所があったら申し訳ありません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/19 14:04