Pythonを使って、投資信託の日次CSVをフォーマットしていきます。
今回は、ニッセイアセットマネジメントの投資信託を対象としています。
対象商品
分配金が出ている ニッセイ世界高配当株ファンド(毎月決算型) を選びました。
ニッセイNASDAQ100、ニッセイSOX指数などのCSVは同じ形式でした。
※ 全ての商品のCSVは確認できていません。
加工前のCSV
CSVのエンコーディングは Shift_JIS か Windows-31J(CP932)です。
日付,ファンド名,基準価額,税引前分配金再投資基準価額,純資産総額,前日比 2026年03月12日,ニッセイ世界高配当株ファンド(毎月決算型),14389,31198.54872028,\5596599992,+132 2026年03月11日,ニッセイ世界高配当株ファンド(毎月決算型),14257,30912.34339461,\5544341874,+185 ・・省略・・ 2013年09月24日,ニッセイ世界高配当株ファンド(毎月決算型),10466,10515.81911653,\34293855613,-38 2013年09月20日,ニッセイ世界高配当株ファンド(毎月決算型),10504,10554,\34374186763,+135 ・・省略・・ 2013年07月24日,ニッセイ世界高配当株ファンド(毎月決算型),10000,10000,\30678399130,0 2013年07月23日,ニッセイ世界高配当株ファンド(毎月決算型),10000,10000,\30679352150,-
データが日付の降順なので、昇順にソートします。
2013年09月20日が決算日で分配金ありです。CSVに分配金の列はないですが、トータルリターンを求めるために「税引前分配金再投資基準価額」を使うことにします。
加工後のCSV
Date,Close,Dividends 2013-07-23,10000.0,0.0 2013-07-24,10000.0,0.0 ・・省略・・ 2013-09-20,10554.0,0.0 2013-09-24,10515.81911653,0.0 ・・省略・・ 2026-03-11,30912.34339461,0.0 2026-03-12,31198.54872028,0.0
加工前後の列のマッピングは以下の通りです。
| 前 | 後 |
|---|---|
| 日付 | Date |
| 税引前分配金再投資基準価額 | Close |
Dividendsは、0.0で埋めています。
コード例
import pandas as pd def main(): # CSVのファイル名 csv_name = "121320" # CSVの読込・列名変更 df = pd.read_csv( f"{csv_name}.csv", encoding="cp932", usecols=["日付", "税引前分配金再投資基準価額"] ) df.columns = ["Date", "Close"] # DatetimeIndexに変換・昇順にソート df["Date"] = pd.to_datetime( df["Date"], format="%Y年%m月%d日" ) df = df.set_index("Date") df = df.sort_index() # 型変換・分配金の列を追加 df["Close"] = df["Close"].astype(float) df["Dividends"] = 0.0 # CSVに出力 df.to_csv( f"{csv_name}-cleaned.csv", encoding="utf-8", date_format="%Y-%m-%d" ) if __name__ == "__main__": main()
型変換などの細かいところは、用途次第では不要になると思います。
CSVのダウンロード方法
ブラウザで ファンドのページ を開きます。

下のほうにある「CSVデータダウンロード」をクリックすると、CSVがダウンロードできます。
