目的
某サイトの売上分析を行う。 売上増減の要因を把握するために、商品ごとに売上を確認。 増減への貢献度(が高い商品についてさらに詳しく分析。いつもやっている流れは
1.週間レポート(全トランザクションデータ)を商品名ごとに集計
2.増減に関与している商品を見つける
3.そこからリファラルなど詳細を調べて、解決策を探る。
特に統計的なことはなく、単純にEXCELで毎週しているデータ整理などの作業を自動化し、分析自体にもっと時間を費やしたいと思い、初心者ながらやってみることに。
Pythonにやってもらうこと
1.EXCELファイル(.xlsx)を読み込んで、データフレームに落とし込む 2.いらない行を削除 3.商品名やその他必要な項目ごとに集計 4.シートに書き出して、保存xlsxファイルを読み込む
pandasはインストール済みなので、import pandas as pd
df = pd.read_excal('ファイルパス')
すると次のエラーが発生。
ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.
調べてみると、EXCELファイルを読み込むにはxlrdをインストールしないといけないらしい。
ということで、Terminalで以下を実行。
pip3 install xlrd
次に出たエラーがこちら。
raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported')
xlrd.biffh.XLRDError: Excel xlsx file; not supported
調べてみると、xlrd(2.01)はxlsファイル以外のサポートを終了したとのこと。
解決方法は
- xlrdのふるい古いバージョンをインストールする(セキュリティ上の問題があるかも)
pip install xlrd==1.2.0
- openpyxlを用いてxlsxファイルを開く
import openpyxl
pandas.read_excel(‘ファイル名(ファイルパス)’, engine=’openpyxl’)
セキュリティの観点からこちらを採用。
xlsxファイルの最終的な読み込み+データフレームへの落とし込みコードはこちら。
import pandas as pd
import openpyxl
df = pd.read_excel('ファイル名', engine='openpyxl')
```
参照
https://obgynai.com/python-pandas-excel-read/
https://stackoverflow.com/questions/65254535/xlrd-biffh-xlrderror-excel-xlsx-file-not-supported
https://exerror.com/xlrd-biffh-xlrderror-excel-xlsx-file-not-supported/
<h2>ピボットテーブルの要領で商品ごとに集計</h2>
EXCELのピボットテーブルの機能は、pivot_tableで実行できます。
基本の型はこちら。
```
pd.pivot_table(df, index='行データ', columns='列データ', values='数値', aggfunc='sum')
```
indexとcolumns,valuesには、表のデーブルヘッダー名に置き換える。
aggfuncは集計方法です(sumは合計)。
今回は'商品名'ごとの売上'数量'の'合計'を見たいだけなので、columnsは削除。
実行結果はこんな感じになります。
```
商品名 数量
A 12
B 55
C 8
```
ひとまずここまで。
参照
https://pyhoo.jp/pivot