人気記事

Python

Pandasでexcelファイル読み込み、並び替え、条件抽出、グラフ化する具体例

投稿日:

中小企業診断士の試験勉強の際に、中小企業白書の統計表を見る機会があり、統計表の中から知りたい情報をピックアップし可視化するサンプルをPythonのPandasで実施しました。

 

元データはこちらとなります。

2018年版「中小企業白書」全文 付属統計資料

今回はP40 「15 表 中小企業の経営指標(2016 年度)」を使用します。

 

(1) excelファイルの読み込みとラベル名の付与

df = pd.read_excel('/Users/mac/Documents/15表 中小企業の経営指標.xlsx',
                  usecols="A:Q",skiprows=3,skipfooter=5,index_col=0)

・read_excelでexcelファイルを読み込みます。

 使用したエクセルファイル    15表 中小企業の経営指標

・usecolsはファイルの使用する列を選択できます。

・skiprowsは最初の何行を読み飛ばすことができます。

・index_colは行のラベル名として0行目(1番最初の列)を指定しています。

 df.indexで確認できます。

  

 

(2)並び替え、列の抽出

#売上高経常利益率で降順に並び替え
df_s = df.sort_values('売上高経 常利益率',ascending=False)

#売上高経常利益率と自己資本比率の列を抽出
df_s.loc[:,['売上高経 常利益率','自己資本 比率']]

・sort_values()で並び替えができます。

 デフォルトでは昇順になりますが、今回は降順にしたかったので

 ascending=Falseとしました。

・列の抽出にlocを使用しています。

 loc[:,['売上高経 常利益率','自己資本 比率']]で行要素 : とすることで全てを、列

 要素は売上高経常利益率と自己資本比率を抽出しています。

 

(3)条件に一致したDataFrameの抽出

df[(df['売上高経 常利益率']>= 5) | (df['自己資本 当期純利 益率 (ROE)']>= 10)]

「売上高経常利益率が5%以上」または「自己資本当期純利益率 (ROE)が10%」以上の産業を抽出しています。

 

(4)抽出した産業の自己資本当期純利益率 (ROE)を棒グラフで表示

df_q.plot(y="自己資本 当期純利 益率 (ROE)",kind ="bar");

・y の部分を変えれば他の経営指標も表示できます。

・kindでグラフの種類を変更できます。デフォルトは折れ線です。

・rotでx軸ラベルの向きを変更できます。

 下記は機会投資効率を折れ線グラフで描いた例です。

  

表も項目が多いとExcelでは煩雑になりがちなので、Pandasでサクッと可視化できると分析が捗りそうです。

 

(参考1)

matplotlibのグラフの日本語表示が文字化けして□□□□のようになる場合、

日本語フォントを入れてあげる必要があります。

https://kagakunomemocho.com/python-matplotlibja/

 

(参考2)

PDFをExcelに変換する方法をいくつか試してなかなかうまくいかなかったのですが、FineReaderというOCRソフトの体験版を使用したらうまくいきました。

ただこちらは有料ソフトなのでできれば無料のやり方を見つけたいです…。

 

以上です。

-Python

Copyright© ITエンジニアへの転身 , 2024 All Rights Reserved Powered by STINGER.