pandasの2大データ構造の2つ目「DataFrame」

データフレーム pandas

【宣伝】pandasのオススメの本の紹介

このブログでも詳しくpandasの使い方を紹介していますが、体系的に学びたい方や、本の方が良いという方には以下の本をオススメしておきます。

pandasライブラリ活用入門[第2版]

DataFrame(データフレーム)とは

pandasを効率良く理解していくために、2つのデータ構造「Series(シリーズ)」と「DataFrame(データフレーム)」を早めに理解すると良い。この記事では「DataFrame」について解説する。

順番としては「Series」から学習した方が良いだろう。「Series」については次の記事で解説した。

DataFrameとは下の画像のような2次元の表形式のデータを扱うデータ構造である。
pandasで最も重要なデータ構造である。

表形式のデータと聞いてピンと来ないかもしれないが、例えばExcelのシートや、データベースのテーブルCSVファイルなども表形式のデータであり、pandasで扱うことができる。

Pythonの本や、この記事を読むだけで終わるより、実際に実験コードをグーグルコラボなどに書いて色々実験すると良い。以下、基本的なDataFrameを扱うコードを紹介する。

DataFrameを扱うコード

DataFrameをコードで作成する

上の画像で示したDataFrameを作成するコードは下のようになる。

import pandas as pd # ※以降のコードでは省略する

df2 = pd.DataFrame({
    "student_id": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    "name": ["taro", "hanako", "jiro", "fuyumi", "sigeru", "satoshi", "misuzu", "taro", "saburo", "ichiro"],
    "math": [50, 68, 90, 35, 49, 77, 88, 91, 80, 100],
    "english": [10, 99, 55, 54, 30, 29, 67, 45, 46, 88]
})
df2

pandasのDataFrameコンストラクタにPythonの辞書を渡してDataFrameを作成する。
DataFrameの挙動について何か確認する時、この方法で手早くテスト用のDataFrameを作成すると良い。(必ずしも10行4列も用意する必要はない。3行2列くらいで十分テストできる)

上の画像で示したように横に並んだ数値 or 文字列1行を行(row)といい、縦に並んだ数値 or 文字列1列を列(column)という。数学の「行列」と同じだ。

また、1番左の列は自動的に割り振られるものでindex(インデックス)といい、各列の1番上の太字の文字列はカラム名といい、それらをまとめてcolumnsという。

DataFrameコンストラクタに渡したPython辞書のキーがカラム名になり、値のリストが列のデータとなる。

DataFrameのindex

上で示したように、DataFrameを作成した際、デフォルトでは0から始まる連番がindexとなる。

df_score = pd.DataFrame({
    "name": ["kyosuke", "hikaru", "kyoko"],
    "score": [55, 68, 90]
})
df_score.index # indexを出力

Seriesと同様にDataFrame作成時、indexを指定することで任意のindexにすることができる。

df_score = pd.DataFrame({
    "name": ["kyosuke", "hikaru", "kyoko"],
    "score": [55, 68, 90]
}, index=["id_1", "id_2", "id_3"])
df_score

Python入門【pandas編】

DataFrameのより詳しい操作方法は別の記事で解説しています。

下の「Python入門【pandas編】」でpandasに関する記事群の一覧を確認できます。興味のある方は下のリンク先をチェックしてみてください。

コメント

タイトルとURLをコピーしました