Pythonを使って、投資信託の日次CSVをフォーマットしていきます。
今回は、野村アセットマネジメントの投資信託を対象としています。
対象商品
分配金が出ている 野村世界業種別投資シリーズ(世界半導体株投資) を選びました。
※ 全ての商品のCSVは確認できていません。
加工前のCSV
CSVのエンコーディングは Shift_JIS か Windows-31J(CP932)です。
野村世界業種別投資シリーズ(世界半導体株投資) 基準日,基準価額(円),純資産総額(億円),分配金税引前(円) 2009年8月27日,10000,39.9,- 2009年8月28日,10042,40.1,- ・・省略・・ 2010年6月25日,10395,19.3,- 2010年6月28日,10207,19.0,40 2010年6月29日,10240,19.1,-
1行目がファンド名なので読み飛ばします。
2010年6月28日が分配金ありです。分配金なしはハイフンなので、0に置換していきます。
加工後のCSV
Date,Close,Dividends 2009-08-27,10000.0,0.0 2009-08-28,10042.0,0.0 ・・省略・・ 2010-06-25,10395.0,0.0 2010-06-28,10207.0,40.0 2010-06-29,10240.0,0.0
加工前後の列のマッピングは以下の通りです。
| 前 | 後 |
|---|---|
| 基準日 | Date |
| 基準価額(円) | Close |
| 分配金税引前(円) | Dividends |
コード例
import pandas as pd def main(): # CSVのファイル名 csv_name = "140471D" # CSVの読込・列名変更 df = pd.read_csv( f"{csv_name}.csv", encoding="cp932", skiprows=1, usecols=["基準日", "基準価額(円)", "分配金税引前(円)"] ) df.columns = ["Date", "Close", "Dividends"] # DatetimeIndexに変換・念のため昇順にソート df["Date"] = pd.to_datetime( df["Date"], format="%Y年%m月%d日" ) df = df.set_index("Date") df = df.sort_index() # 型変換・分配金のハイフンを0に置換 df["Close"] = df["Close"].astype(float) df["Dividends"] = df["Dividends"].replace( "-", "0" ).astype(float) # CSVに出力 df.to_csv( f"{csv_name}-cleaned.csv", encoding="utf-8", date_format="%Y-%m-%d" ) if __name__ == "__main__": main()
型変換などの細かいところは、用途次第では不要になると思います。
CSVのダウンロード方法
ブラウザで ファンドのページ を開きます。

少し下にある、タブ「チャート・分配金実績」をクリックします。

表示が切り替わったら、さらに下の「過去のデータのダウンロード」をクリックします。

これで、CSVがダウンロードできます。