マネーフォワードは、CSVをダウンロードする機能があるので、それを活用すると、pythonでグラフ化することができる。資産から、資産推移ボタンをクリック。

その後に一番下のダウンロードボタンを押すと、この画面のCSVファイル(資産推移月次.csv)が、「●月詳細」ボタンを押した後にダウンロードを押せば、その月の資産データがダウンロードできる。(資産推移_20●-●.csv)

この毎月のデータと当月のデータを簡単に結合できるのがpythonの良いところだ。
!pip install japanize-matplotlib
import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib
import seaborn as sns
import datetime
import numpy as np
from tqdm.notebook import tqdm
sns.set(font="IPAexGothic")
#メインのアセット
asset_data=pd.DataFrame()
for num in range(8): #2015は5月から
test_data=pd.read_csv(' /content/drive/MyDrive/Colab Notebooks/asset/money/資産推移_2015-'+ str(num+5).zfill(2)+'.csv',encoding="shift-jis")
#test_data=test_data.rename(columns={'預金・現金・仮想通貨(円)':'預金・現金・暗号資産(円)'})
asset_data=pd.concat([asset_data,test_data])
for years in tqdm(range(2016,2022)):
for num in range(1,13):
test_data=pd.read_csv('/content/drive/MyDrive/Colab Notebooks/asset/money/資産推移_'+str(years)+'-'+ str(num).zfill(2)+'.csv',encoding="shift-jis")
test_data = test_data.rename(columns={'預金・現金・暗号資産(円)': '預金・現金・仮想通貨(円)'})
asset_data=pd.concat([asset_data,test_data])
for num in range(1,4):
test_data=pd.read_csv('/content/drive/MyDrive/Colab Notebooks/asset/money/資産推移_2022-'+ str(num).zfill(2)+'.csv',encoding="shift-jis")
test_data = test_data.rename(columns={'預金・現金・暗号資産(円)': '預金・現金・仮想通貨(円)'})
asset_data=pd.concat([asset_data,test_data])
test_data=pd.read_csv('/content/drive/MyDrive/Colab Notebooks/asset/money/資産推移月次.csv',encoding="shift-jis")
test_data.日付=pd.to_datetime(test_data.日付)
now=datetime.datetime.now()
print(now.year,now.month)
test_data=test_data[(test_data['日付'].dt.year==now.year)&(test_data['日付'].dt.month==now.month)]
#test_data=test_data[(test_data['日付'].dt.year==now.year)&((test_data['日付'].dt.month==now.month)|(test_data['日付'].dt.month==now.month-1))]
test_data.columns=['日付','合計(円)','預金・現金・仮想通貨(円)','株式(現物)(円)','年金(円)','ポイント(円)']
asset_data=pd.concat([asset_data,test_data])
asset_data['日付']=pd.to_datetime(asset_data['日付'])
asset_data=asset_data.sort_values(by='日付',ascending=True)
asset_data=asset_data.reset_index()
asset_data.tail(30)
こんな感じで、データを取り込み
fig, axes = plt.subplots(2, 2,figsize=(30, 10),tight_layout=True)
asset_data_df=asset_data.fillna(0)
lists=['合計(円)','株式(現物)(円)','預金・現金・仮想通貨(円)','年金(円)']
k=0
for d in lists:
low=k//2
col=k%2
axes[low,col].set_title(d)
axes[low,col].plot(asset_data_df['日付'],asset_data_df.loc[:,d],label=d)
axes[low,col].legend()
k=k+1
plt.show()
こんな数行でグラフ化できる。
コメント