Pythonの人気ライブラリpandasの基本

環境

  • Windows 10
  • Python 3.10.1
  • Pandas 1.4.1

Pandasのデータ構造

基本

  • Pandasには、大きく2種類のデータ構造がある
    • Pandas.Series
      • 1次元、つまり1列分だけ値が存在する構造
      • シリーズはデータ(values)とそれに対応する行ラベル(index)を持つ、1次元データ構造
    • Pandas.DataFrame
      • 行と列からなる2次元構造
      • DataFrameから1列を抽出した場合はSeries扱いになる
      • エクセルのようなテーブル形式のデータ構造

データ例

  • 行は行番号と行名、列は列番号と列名でそれぞれ指定できる
  • 例えば、言語名という列は列番号でいうと、1になる
  • 以下のようなデータだと、行番号は行名と一致しているのでどちらの方法で指定したとしても“0”になる

masayan
masayan

行・列はそれぞれ0始まりなので注意しましょう

 

Pandasのデータ生成方法

SeriesとDataFrameはそれぞれ以下のように生成できる

Series

import pandas as pd
pg_lang_series = pd.Series(["PHP", "Java", "Python", "Ruby"])
print(pg_lang_series)

// 左の列がindex(行名)、右が値
0 PHP
1 Java
2 Python
3 Ruby

dtype: object

DataFrame

import pandas as pd

pg_lang_data_frame = pd.DataFrame(
  data, columns=["言語名", "型"]
)
print(pg_lang_data_frame)

// 一番左側の0,1,2,3がindex(行名)、一番上の0,1がcolumn(列名)
  0   1
0 PHP 動的型付け
1 Java 静的型付け
2 Python 動的型付け
3 Ruby 動的型付け

特定の列だけを取得するには以下

df[0]※もしくは、カラム名がわかれば以下 df["言語名"]// 0 PHP 1 Java 2 Python 3 Ruby

    Pandasのデータ取得方法

    • 他にも結構種類がありますが、とりあえずこの辺りさえ押さえておけばいけるであろうメソッドです
    • atとiat、locとilocの違いは、行名列名で指定するか、行番号・列番号で指定するか
    • at・iatとloc・ilocの違いは単独の要素の取得か範囲指定した要素の取得か
    • 処理速度はat、iatのほうがlocやilocよりも速いので、単独の要素を取得したい場合はat、iatを使用するほうがよい
    メソッド名内容使用例
    at行名と列名で位置を指定を指定して単独の要素の値を取得
    df.at[行名, 列名]
    iat行番号と列番号を指定して単独の要素の値を取得
    df.iat[行番号, 列番号]
    loc行名もしくは列名で指定して単独/複数の要素を取得df.iloc[開始行名, 終了行名, 開始列名, 終了列名]
    iloc行番号と列番号で指定して単独/複数の要素を取得
    df.iloc[開始行番号, 終了行番号, 開始列番号, 終了列番号]
    masayan
    masayan

    ilocで行番号のみ指定した場合は全カラムが対象になります

    また、locとilocの範囲指定は、上記のようなリスト形式[a, b, c, …]やスライスstart:stop:step形式でデータの範囲・位置を指定します

    Python学習におすすめの書籍

    独習Python/山田祥寛【3000円以上送料無料】
    bookfan 1号店 楽天市場店
    ¥ 3,300(2023/01/31 18:22時点)
    タイトルとURLをコピーしました