Python × Excel

PythonでExcel/CSVを読み込み・データの大枠を確認する方法

2020-10-16

本記事では、PythonでExcel・CSVを読み込み・データの大枠を確認する方法をご紹介します。

 

Pythonの実行環境

今回は、以下の実行環境でプログラムを実行しています。

・Python 3.7.6
・Jupyterlab 1.2.6
・Pandas:1.1.2

テストデータは、次のような予算管理表を使います。

ファイル名は「テストデータ.xlsx」で、シート名は「予算管理表」としてます。

テストデータ

 

本記事で、今回利用するライブラリはPandasです。

import pandas as pd

※本記事では、Pythonのコードの下のコメントアウトは、出力結果を示しています。

PythonでのExcelファイルの読み込み

read_excelを使って第一引数にファイル名、第二引数にシート名を指定します。

df = pd.read_excel('テストデータ.xlsx', sheet_name = '予算管理表')

 

JupyterLabでは、こんな感じで読み込めます。

df

 

PythonでCSVファイルの読み込み(Windowsは、encoding='cp932'を指定)

CSVの場合は、read_csvを使ってファイル名を指定します。

df = pd.read_csv('ファイル名.csv')

Windowsで作成されたCSVファイルは、たまに正常に開かないことがあります。その時は、

df = pd.read_csv('ファイル名.csv', encoding='cp932')

encodingを指定すると、うまく読み込めると思います。

 

PythonでExcelの行数・列数の確認する

Excelでは、普段は次のようにセルを選択して、Excelの下の部分で行数や列数を確認していると思います。

行数の確認

 

Pythonでは次のように行います。今回のテストデータは、11行10列だとわかります。

df.shape
#(11, 10)

len(df)
#11

 

PythonでExcelの列項目を確認する

列項目は、次のように確認できます。

df.columns
#Index(['件名番号', '費目1', '費目2', '件名', '合計', '2021年度', '2022年度', '2023年度', '担当者',
#       '実施完了年月'],
#      dtype='object')

もし、列項目をリストとして扱いたい時は、次のようにします。

df.columns.values
#array(['件名番号', '費目1', '費目2', '件名', '合計', '2021年度', '2022年度', '2023年度',
#       '担当者', '実施完了年月'], dtype=object)

ndarrayの形式で出力されます。

これでforループの繰り返しにも利用できるようになります。

 

PythonでExcelの特定の列の一意の"値"と"その数"を確認する

Excelだと下図のように、「重複の削除」で重複する値を削除してから、その値と数を確認することが多いです。

Excel_重複削除

 

df['費目1'].unique()
#array(['1-消耗品費', '2-委託費', '3-設備'], dtype=object)

で重複を除いた一意の値を確認できます。
また、一意の値の数も確認できます。

df['費目1'].nunique()
#3

 

PythonでExcelの特定の列の値の個数を確認する

Excelの場合、まず列の値が一意になる行を作って、そこにCOUNTIF関数で値の個数を確認することになります。

下図は、「費目1」列のそれぞれの値の個数をExcelで確認しているものです。

countif

 

Pythonでは、value_counts()を使います。

df['費目1'].value_counts()
#2-委託費     6
#1-消耗品費    3
#3-設備      2
#Name: 費目1, dtype: int64

 

Excelのように別の表を作る必要がなく、1行で書けるの便利ですね。

 

PythonでExcelの列の形式(型)を確認する

Excelだと標準、数値、文字列などのおなじみの形式(型)があります。

Pythonでは、全ての列の型をdtypesで確認できます。

 

df.dtypes
#件名番号               int64
#費目1               object
#費目2               object
#件名                object
#合計                 int64
#2021年度             int64
#2022年度             int64
#2023年度             int64
#担当者               object
#実施完了年月    datetime64[ns]
#dtype: object

 

objectが文字列、int64が数値、datetime64が日付に対応します。

 

PythonでExcelの数値列の統計量を確認する

Excelだと列の全体の統計量を確認することは、正直あまり多くないと思いますが、Pythonでの確認方法を紹介します。

pythonでは、describe()で、全ての数値の列の統計量(データ数、平均、標準偏差、最大値、最小値、四分位点)を確認できます。

df.describe()

 

結果は次のようになります。数値データの大枠や外れ値を確認したいときに使えます。

describe

 

 

ここまでが、PythonでExcel・CSVを読み込んで、データの大枠を確認する方法でした。

最後まで読んでいただき、ありがとうございました。

よく読まれている記事

se-shikaku 1

  社内SEになるには資格って必要?社内SEでキャリアップするときにおすすめの資格は? 回答としては、 社内SEは、対人スキル、実務での対応力や最新情 ...

社内SEの仕事内容 2

  社内SEってどんな仕事なんだろ~ 検索しても転職サイトの記事ばかりでよく分からない・・   確かにそうですね。。実経験を基に、社内SE( ...

side-work-trial 3

  コロナで会社の経営も不安。。個人でお金稼ぎたいな~ 今、こう考えるサラリーマン、OLの方はごまんといると思います。   僕は、本業では社 ...

adsense-pass 4

【3記事で一発合格】Google AdSense申請に合格したブログ情報 こんにちは、いなサラ(@いなサラ|田舎の情シスサラリーマン)です。 2019年10月5 ...

-Python × Excel

© 2020 inasala note