🐍

(学習ログ)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()shapecolumnsinfo()などを使って、読み込んだデータの構造を素早く把握する手法

Discussion