Pandasの「DataFrame型」は、表形式のデータ(行と列で構成されるデータ)を扱うための基本的なデータ構造です。
PythonでExcelのような表データを扱いたいときに便利です。
この記事では、学習の記録として、DataFrameの作り方や基本的な操作方法をまとめておきます。
✅ DataFrameとは?
- 行と列から構成される2次元のデータ構造
- 行方向の「インデックス」と列方向の「カラム名(列名)」がある
- NumPy配列と似ているが、インデックスやカラム名で柔軟にアクセスできるのが特徴
✅ DataFrameを作成する(辞書形式)
Pandasでは、辞書(dict)形式のデータから簡単にDataFrameを作成できます。
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Age': [25, 30, 35, 40, 45],
'City': ['Tokyo', 'Osaka', 'Nagoya', 'Sapporo', 'Fukuoka']
}
df = pd.DataFrame(data)
print(df)
Name Age City
0 Alice 25 Tokyo
1 Bob 30 Osaka
2 Charlie 35 Nagoya
3 David 40 Sapporo
4 Eve 45 Fukuoka
✅ データの確認
・先頭のデータを確認する:head()
df.head() # 先頭5行を表示
・末尾のデータを確認する:tail()
df.tail(3) # 末尾3行を表示
✅ インデックス名とカラム名の確認・変更
・カラム名の確認
df.columns
・インデックスの確認
df.index
・カラム名の変更
df.columns = ['名前', '年齢', '都市']
print(df)
名前 年齢 都市
0 Alice 25 Tokyo
1 Bob 30 Osaka
2 Charlie 35 Nagoya
3 David 40 Sapporo
4 Eve 45 Fukuoka
・インデックスの変更
df.index = ['a', 'b', 'c', 'd', 'e']
print(df)
名前 年齢 都市
a Alice 25 Tokyo
b Bob 30 Osaka
c Charlie 35 Nagoya
d David 40 Sapporo
e Eve 45 Fukuoka
✅ データの抽出(基本)
・列を取り出す(df["列名"]
)
df['名前']
a Alice
b Bob
c Charlie
d David
e Eve
Name: 名前, dtype: object
・複数列を取り出す(df[["列1", "列2"]]
)
df[['名前', '都市']]
名前 都市
a Alice Tokyo
b Bob Osaka
c Charlie Nagoya
d David Sapporo
e Eve Fukuoka
・行番号で1行だけ取り出す(インデックスが数字のとき)
df[0:1]
名前 年齢 都市
a Alice 25 Tokyo
💡 通常は
.loc[]
や.iloc[]
を使う方が明示的でおすすめですが、簡単な場合は上記のように記述できます。
✅ データの抽出(loc / iloc)
・ラベルで抽出:loc
# インデックス 'a' の行を取得
df.loc['a']
# 複数列を指定して抽出
df.loc[:, ['名前', '都市']]
・位置で抽出:iloc
# 0行目を取得
df.iloc[0]
# 0〜2行目、1〜2列目を抽出
df.iloc[0:3, 1:3]
✅ 新しい列を追加する
列名を指定して、リスト形式で値を代入すると、新しい列を追加できます。
df['職業'] = ['エンジニア', 'デザイナー', 'マネージャー', 'ディレクター', 'マーケター']
print(df)
名前 年齢 都市 職業
a Alice 25 Tokyo エンジニア
b Bob 30 Osaka デザイナー
c Charlie 35 Nagoya マネージャー
d David 40 Sapporo ディレクター
e Eve 45 Fukuoka マーケター
✍️ まとめ
この記事では、DataFrameの基本操作について以下の内容を学習しました:
- DataFrameの意味と作成方法
- データ確認(head, tail)
- カラム名・インデックス名の確認と設定
-
df["カラム名"]
やdf[["カラム1", "カラム2"]]
を使った基本的な抽出 -
loc
・iloc
を使った柔軟な抽出 - 新しい列の追加方法