Pandas DataFrame の作成

PandasBeginner
オンラインで実践に進む

はじめに

Pandas を用いたデータ操作の世界へようこそ!DataFrame は、ラベル付きの軸(行と列)を持つ、二次元でサイズ変更可能、かつ潜在的に異種混合の表形式データ構造です。これは、現代のデータ分析において最も一般的に使用されるデータ構造の一つです。

この実験では、Pandas DataFrame を作成するための基本的な方法を学びます。簡単な Python 辞書から DataFrame を作成することから始め、その後、列とインデックスをカスタマイズする方法を探求します。すべてのタスクは WebIDE 内で、Python スクリプトを記述・実行して行います。

辞書から DataFrame を作成する

このステップでは、Pandas DataFrame を作成する最も一般的な方法、すなわち Python の辞書から作成する方法を学びます。辞書を使用する場合、キーは列名となり、値(通常はリストまたは配列)はそれらの列のデータとなります。

まず、WebIDE の左側にあるファイルエクスプローラーから main.py ファイルを開きます。

次に、以下のコードを main.py ファイルに追加します。このコードは Pandas ライブラリをインポートし、学生データの辞書を定義します。その後、pd.DataFrame() を使用して辞書を DataFrame に変換し、その結果を表示します。

import pandas as pd

## 辞書形式のデータ
student_data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Score': [85, 92, 78]
}

## 辞書から DataFrame を作成
df = pd.DataFrame(student_data)

## DataFrame を表示
print(df)

スクリプトを実行するには、WebIDE でターミナルを開き(Terminal -> New Terminal)、以下のコマンドを実行します。すべての作業は ~/project ディレクトリ内で行う必要があります。

python3 main.py

以下のような出力が表示されるはずです。これは、辞書のデータがデフォルトの行インデックス(0 から始まる)とともに、きれいに表形式に整理されていることを示しています。

      Name  Score
0    Alice     85
1      Bob     92
2  Charlie     78

DataFrame で列名を指定する

このステップでは、DataFrame 内の列の順序を制御する方法を学びます。デフォルトでは、Pandas は辞書のキーの順序を保持しない場合があります。列名をリストとして columns パラメータに渡すことで、列の順序を明示的に定義できます。

main.py ファイルを編集して、列の順序を指定しましょう。「Name」と「Score」の列を入れ替えます。

main.py ファイルを以下のコードで更新してください。pd.DataFrame() 関数に columns パラメータが追加されていることに注意してください。

import pandas as pd

## 辞書形式のデータ
student_data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Score': [85, 92, 78]
}

## DataFrame を作成し、列の順序を指定
df = pd.DataFrame(student_data, columns=['Score', 'Name'])

## DataFrame を表示
print(df)

ターミナルでスクリプトを再度実行します。

python3 main.py

出力には、指定した通り、「Score」列が最初に表示されます。

   Score     Name
0     85    Alice
1     92      Bob
2     78  Charlie

DataFrame にインデックスラベルを追加する

このステップでは、デフォルトの数値インデックス(0、1、2、...)を、より意味のあるラベルに置き換える方法を学びます。これは index パラメータを使用して行われ、各行にカスタムインデックスを割り当てることができます。

DataFrame のインデックスとして、一意の学生 ID を割り当てましょう。main.py ファイルを編集して、インデックスラベルのリストを含めます。

main.py のコードを以下のように更新してください。

import pandas as pd

## 辞書形式のデータ
student_data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Score': [85, 92, 78]
}

## カスタムインデックスラベルを定義
index_labels = ['ID1', 'ID2', 'ID3']

## カスタムインデックスを持つ DataFrame を作成
df = pd.DataFrame(student_data, index=index_labels)

## DataFrame を表示
print(df)

ターミナルからスクリプトを実行します。

python3 main.py

デフォルトの数値インデックスが、カスタムの「ID」ラベルに置き換えられているのが確認できるはずです。

        Name  Score
ID1    Alice     85
ID2      Bob     92
ID3  Charlie     78

ドット記法で DataFrame の列にアクセスする

このステップでは、DataFrame の単一の列にアクセスする便利な方法、ドット記法について学びます。列名が有効な Python の識別子(スペースがない、数字で始まらないなど)である場合、DataFrame オブジェクトの属性としてアクセスできます。

ドット記法を使用して、DataFrame から「Name」列のみを選択して表示してみましょう。

main.py ファイルを編集して、「Name」列にアクセスし、それを表示するように変更してください。

import pandas as pd

## 辞書形式のデータ
student_data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Score': [85, 92, 78]
}

## DataFrame を作成
df = pd.DataFrame(student_data)

## ドット記法を使用して 'Name' 列にアクセスし、表示する
print(df.Name)

ターミナルでスクリプトを実行します。

python3 main.py

出力は Pandas Series になります。これは基本的に DataFrame の単一の列です。

0      Alice
1        Bob
2    Charlie
Name: Name, dtype: object

info メソッドを使用して DataFrame の情報を表示する

このステップでは、.info() メソッドの使用方法を学びます。これは、各列のデータ型、非ヌル値の数、メモリ使用量を含む、DataFrame の簡潔な概要を提供する不可欠な関数です。新しいデータセットを探索する際の最初のステップとして非常に役立ちます。

学生 DataFrame に .info() メソッドを適用してみましょう。

このメソッドを呼び出すように main.py ファイルを変更してください。.info() は概要を直接表示するため、print() 関数で囲む必要はありません。

import pandas as pd

## 辞書形式のデータ
student_data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Score': [85, 92, 78]
}

## DataFrame を作成
df = pd.DataFrame(student_data)

## DataFrame の概要を表示
df.info()

ターミナルからスクリプトを実行します。

python3 main.py

出力は、DataFrame の構造と内容の詳細な概要を示します。

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 2 columns):
 ##   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   Name    3 non-null      object
 1   Score   3 non-null      int64
dtypes: int64(1), object(1)
memory usage: 176.0+ bytes

まとめ

この実験の完了、おめでとうございます!Pandas DataFrame の作成と検査に関する基本的なテクニックを習得しました。

この実験では、以下のことをマスターしました。

  • Python の辞書から DataFrame を作成する。
  • columns パラメータを使用して列を指定し、並べ替える。
  • index パラメータを使用してカスタム行ラベルを割り当てる。
  • ドット記法を使用して特定の列にアクセスする。
  • .info() メソッドを使用して DataFrame の構造の簡潔な概要を取得する。

これらのスキルは、Pandas を使用したあらゆるデータ分析タスクの最初の必須ステップです。これで、さらなる探索のために独自のデータセットを作成する準備が整いました。