pythonで数値解析 ~amazonの購入履歴を集計、グラフ化~

python,数値解析,pandas,python,数値解析

先日のwebスクレイピングで収集したamazonの購入履歴情報をもとに、期間ごとの購入金額の集計をグラフ化をしてみました。

事前準備として以下のソースコードからamazonの購入履歴を取得してください。

試してみた集計についてはざっとこんな感じ。

  • 週ごとの集計
  • 月ごとの集計
  • 四半期ごとの集計
  • 年ごとの集計

ソース

import tkinter
from tkinter import filedialog
import os.path

from datetime import date
import pandas as pd
import matplotlib.pyplot as plt


# 購入履歴ファイルを開く
fTyp = [("", "*")]
iDir = os.path.abspath(os.path.dirname(__file__))
filename = tkinter.filedialog.askopenfilename(filetypes=fTyp, initialdir=iDir , title="対象のエクセルファイルを選択" )

# エクセルファイルを読み出し
d = pd.read_excel(filename)

# データの成型
date = d['購入日'].values
new_date = [x.replace('年','-').replace('月','-').replace('日','') for x in date if "nan" not in str(x)]
value = d['金額'].values
new_value = [x for x in value if "nan" not in str(x)]

mylist = list(zip(new_date, new_value))
df = pd.DataFrame(mylist, columns=['購入日', '金額'])

# 日付をdatetime型に変換し、インデックスにする
df['購入日'] = pd.to_datetime(df['購入日'])
df = df.set_index(df['購入日'])

# dropで日付列を削除
df = df.drop('購入日', axis=1)
print(df)

# 週ごとに合計
df_W = df.resample('W').sum()
print(df_W)

# 月ごとに集計
df_M = df.resample('M').sum()
print(df_M)

# 四半期ごとの集計
df_Q = df.resample('Q').sum()
print(df_Q)

# 年ごとの集計
df_Y = df.resample('Y').sum()
print(df_Y)

# グラフ化
plt.plot(df_Q)
plt.xticks(rotation=30)
plt.grid()
plt.show()

結果

4半期ごとの場合の出力結果は以下。グラフの出力結果については個人情報になるので割愛します。