Python

【画像で説明】Python pandasでCSVを読み込む方法 ~ 基本編 単一要素の取得 ~【at / iat / loc / iloc 】

はじめに

無料で使えるPythonのデータ解析ライブラリ「pandas」で、「CSVファイルを読み込む方法」と「読み込んだデータを取得(アクセス)する方法」を解説します。

取得方法は大きく分けて、「単一要素の取得」と「複数要素の取得」の二つがありますが、今回は基本編その1として、「単一要素の取得」を解説します。

  1. CSVデータの読み取り
  2. 単一要素の取得 ( at・iat・loc・iloc )

複数要素の取得については以下の記事ををご覧ください。

「Pythonやpandasはよく分からない」という方にも分かるよう、なるべく丁寧に解説しています。
pandasを使うと、CSVをかなり簡単に扱うことができるので、是非ご覧ください。

環境

この記事は以下の環境で作成しています。

Python    3.9.6
pandas4.7.2
OSWindows10

「pandasのインストールから知りたい」という方は、先に以下の記事をご覧ください。インストールには5分もかかりません。

CSVファイル

今回使用するCSVファイルは以下の通りです。 生データ・表計算の形式の、2つを掲載します。

※ 実行する場合は、下記のCSVデータをPythonファイルと同じフォルダに保存してください。

name,age,color,flag
taro,1,Red,true
jiro,11,Blue,true
saburo,21,Green,false
CSVを表計算ソフトで見やすくした画像

CSVファイルはスペースを入れずにそのまま使用してください。

基本編の解説のため、シンプルな(見づらい)データを、あえて使用しています。

実行結果

後述の「CSVファイルを読み込み」「単一要素を取得」するコードの実行結果です。

最初に出ているのが、読み込んだCSVすべての内容・下の4行が単一要素を4つの方法で取得した結果です。

ソースコードの実行結果
単一要素を取得するコードの実行結果

全体コード

「CSVファイルを読み込み」「単一要素を取得」するコードです。pandasの「at」「iat」「col」「icol」プロパティを使用します。

具体的な引数の解説を、画像を使って「コードのポイント」で説明しています。詳細は後述の内容をご覧ください。

「at・iat・loc・iloc」は要素名称(番号)で、Seriesのデータへアクセスするプロパティです、[]で指定します。 「iあり」は番号、「iなし」は名称指定に使用します。

プロパティの説明や効能などはやや難しくなるので、ここでは「データへアクセスするための、特別な変数のようなもの」として見てください。

import pandas as pd

# csvファイルを読み込みます
df = pd.read_csv("data.csv")

# 読み込んだ全てのデータを表示します 
print(df)

print("\n\n")

#
# at/iat/loc/iloc での個別要素の取得方法です。
#

# at  行番号と「列名称 」でデータを取得します")
print ( df.at[0,"name"] )

# iat 行番号と「列番号」でデータをします")
print ( df.iat[0,0] )

# loc  行番号と「列名称 」でデータを取得します
print ( df.loc[0,"name"] )

# iloc 行番号と「列番号」でデータを取得します
print ( df.iloc[0,0] )

コードのポイント

CSVファイルの読み取り

括弧内でCSVファイルのファイル名(とpath)を指定して、pandasの「DataFrame」という形式で読み取ります。CSVの読み込みはこの一行で完了です。

# csvファイルを読み込みます
df = pd.read_csv("data.csv")

「DataFrame」表示・編集・加工がしやすいpandasのデータの形式です。
詳細は長くなるので別記事にて解説します。

at / iat

単一の要素のみ取得可能なプロパティです。取得するデータの指定方法により以下の2つを使い分けます。

  • 「名称」を指定して要素を取得「at」
  • 「番号」を使用して要素を取得「iat」

下記のコードは2つとも、CSV中の「taro」を取得しています。

# at  行番号と「列名称 」でデータを取得します")
print ( df.at[0,"name"] )

# iat 行番号と「列番号」でデータをします")
print ( df.iat[0,0] )

要素の指定方法

指定方法は二つとも同じで、1つ目で「行の場所」、2つ目で「列の場所」を指定します。

「行」については、上から順に振られるので、行の番号「0」を指定します。

「列」については、「atの場合は列名称であるname」を、「iatの場合は列の番号0」を指定します。

atとiatの引数の指定方法をわかりやすく図解

loc / iloc

「単一要素」「複数要素」の両方が取得可能なプロパティです。 at / iat と同様に、取得するデータの指定方法により以下のように2つを使い分けます。

  • 「名称」を指定して要素を取得「loc」
  • 「番号」を使用して要素を取得「icol」

下記のコードも、CSV中の「taro」を取得しています。

# loc  行番号と「列名称 」でデータを取得します
print ( df.loc[0,"name"] )

# iloc 行番号と「列番号」でデータを取得します
print ( df.iloc[0,0] )

要素の指定方法

指定方法についても同様で、引数は1つ目で「行の場所」、2つ目で「列の場所」を指定します。

単一の要素を取得する場合は、at/iatと全く同じ引数の内容になります。

colとicolの引数の指定方法をわかりやすく図解

まとめ

無料で使えるPythonのデータ解析ライブラリ「pandas」で、CSVの読み込みと、単一要素の取得する以下のプロパティについて解説しました。

  • 単一要素の取得「のみ」ができるプロパティ
    • 「名称」を指定「at」
    • 「番号」を指定「iat」
  • 単一要素・複数要素の取得の「両方」ができるプロパティ
    • 「名称」を指定「loc」
    • 「番号」を指定「icol」

この記事では「単一要素の取得」に絞って解説しました。続きの「複数要素の取得」については、以下の記事をご覧ください。

pandasのインストールや環境構築など

以下の記事で、「Windows10にpandasをインストールする方法」や、「仮想環境上(venv)でPythonを実行する方法」も解説しています。興味のある方は合わせてご覧ください。

pandasのインストール方法

仮想環境上(venv)でPythonを実行する方法

応援・要望お待ちしてます

ブログを見ていて「この辺を詳しく知りたい」「このライブラリの使い方を知りたい」「こんなことで困ってる」...etc があれば、コメント・問い合わせ・Twitterで教えてください。質問・ご要望に合わせて解説記事を作ります。

ブログを気に入っていただけたり、「応援してもいいよ」という方がいたら、ブログやSNSでの紹介をお願いします。 あたたかい応援は、中の人の更新の大きな励みになります。

ABOUT ME
えす
現役のソフトウェアエンジニアです。 C++ C# Python を使ってます。10年ちょい設計/開発部門にいましたが、今はQAエンジニアっぽいことをしています。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です