本記事では、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では、こんな感じで読み込めます。
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だと下図のように、「重複の削除」で重複する値を削除してから、その値と数を確認することが多いです。
df['費目1'].unique()
#array(['1-消耗品費', '2-委託費', '3-設備'], dtype=object)
で重複を除いた一意の値を確認できます。
また、一意の値の数も確認できます。
df['費目1'].nunique()
#3
PythonでExcelの特定の列の値の個数を確認する
Excelの場合、まず列の値が一意になる行を作って、そこにCOUNTIF関数で値の個数を確認することになります。
下図は、「費目1」列のそれぞれの値の個数をExcelで確認しているものです。
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()
結果は次のようになります。数値データの大枠や外れ値を確認したいときに使えます。
ここまでが、PythonでExcel・CSVを読み込んで、データの大枠を確認する方法でした。
最後まで読んでいただき、ありがとうございました。