(学習ログ)Python012:pandasでCSV・Excelを読み込んで列データを確認する基本操作
1. はじめに
この記事の目的
Pythonのデータ分析ライブラリ「pandas」を使って、外部ファイル(CSV・Excel)からデータを読み込み、特定の列を表示する基本操作を習得する。
この記事の概要
- pandasライブラリのインポート方法
-
read_csv()とread_excel()によるファイル読み込み - 列名を指定してデータを取り出す方法
-
head()メソッドで先頭データを確認する手順
2. サンプルコード
コード全文
# pandasライブラリをインポート(pdという略称で使用)
import pandas as pd
# CSVファイルを読み込んでDataFrameオブジェクトとして格納
sample_uriage_data = pd.read_csv("002_サンプル/sample_uriage_data.csv")
# Excelファイルを読み込んでDataFrameオブジェクトとして格納
sample_customer_ledger = pd.read_excel("002_サンプル/sample_customer_ledger.xlsx")
# sample_uriage_dataのitem_name列の先頭5行を表示
sample_uriage_data["item_name"].head()
# sample_uriage_dataのitem_price列の先頭5行を表示
sample_uriage_data["item_price"].head()
コード解説
1行目:import pandas as pd
pandasライブラリを読み込んでいます。as pdとすることで、以降のコードではpdという短い名前で呼び出せるようになります。
3行目:sample_uriage_data = pd.read_csv("002_サンプル/sample_uriage_data.csv")
指定したパスにあるCSVファイルを読み込み、sample_uriage_dataという変数名でDataFrame(表形式のデータ構造)として保存しています。
5行目:sample_customer_ledger = pd.read_excel("002_サンプル/sample_customer_ledger.xlsx")
Excelファイル(.xlsx形式)を読み込んで、sample_customer_ledgerという変数に格納しています。CSVとは異なる形式ですが、同じようにDataFrameとして扱えます。
7行目:sample_uriage_data["item_name"].head()
sample_uriage_dataからitem_name列だけを取り出し、head()メソッドで先頭5行を表示しています。
9行目:sample_uriage_data["item_price"].head()
同様に、item_price列の先頭5行を表示しています。
実行結果例
CSVファイル読み込み後の確認
sample_uriage_data["item_name"].head()
0 ノートPC
1 マウス
2 キーボード
3 モニター
4 USBケーブル
Name: item_name, dtype: object
価格列の確認
sample_uriage_data["item_price"].head()
0 89800
1 2980
2 5800
3 24800
4 680
Name: item_price, dtype: int64
このように、列名と5行分のデータが表示され、最後にデータ型(dtype)も確認できます。
3. エラーと確認のポイント
代表的なエラー文
FileNotFoundError: [Errno 2] No such file or directory
ファイルパスが間違っているか、ファイルが存在しない場合に発生します。パスの記述ミスや、ファイル名のスペルミスがないか確認しましょう。
KeyError: 'item_name'
指定した列名がDataFrameに存在しない場合のエラーです。列名のスペルミスや、大文字・小文字の違いに注意してください。
ModuleNotFoundError: No module named 'openpyxl'
Excelファイルを読み込む際、openpyxlライブラリがインストールされていないと発生します。pip install openpyxlでインストールしてください。
よく使う確認メソッドと出力例
shape - データの行数と列数を確認
sample_uriage_data.shape
(1000, 5) # 1000行、5列のデータという意味
columns - 列名の一覧を確認
sample_uriage_data.columns
Index(['item_id', 'item_name', 'item_price', 'purchase_date', 'customer_id'], dtype='object')
head() - 先頭データを確認(デフォルトは5行)
sample_uriage_data.head(3) # 引数で行数を指定可能
item_id item_name item_price purchase_date customer_id
0 1 ノートPC 89800 2024-01-15 101
1 2 マウス 2980 2024-01-16 102
2 3 キーボード 5800 2024-01-16 103
info() - データ全体の概要を確認
sample_uriage_data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1000 entries, 0 to 999
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 item_id 1000 non-null int64
1 item_name 1000 non-null object
2 item_price 1000 non-null int64
3 purchase_date 1000 non-null object
4 customer_id 1000 non-null int64
dtypes: int64(3), object(2)
4. まとめ
本記事で理解できるようになったことは以下の通りです。
-
pandasを使ったファイル読み込み:
read_csv()とread_excel()で異なる形式のファイルを統一的に扱えること -
列データの取り出し方:角カッコ
[]で列名を指定し、特定の列だけを抽出する方法 -
データ確認の基本操作:
head()、shape、columns、info()などを使って、読み込んだデータの構造を素早く把握する手法
Discussion