Pandasは、Pythonでデータ解析を行うためのライブラリであり、特に「データフレーム(DataFrame)」という2次元の表形式データを効率的に操作するために非常に強力です。この記事では、Pandasを使って基本的なデータ操作を行い、データフレームを作成・操作する方法について解説します。
Pandasのインストール
まず、Pandasをインストールしていない場合は、以下のコマンドでインストールします。
pip install pandas
Pandasの基本
1. Pandasのインポート
Pandasを使用するためには、まずimport pandas as pd
でインポートします。pd
というエイリアスは一般的に使われる名前です。
import pandas as pd
2. データフレームの作成
データフレーム(DataFrame)は、Pandasの最も重要なデータ構造であり、行と列を持つ2次元のデータ構造です。以下では、リストや辞書を使ってデータフレームを作成する方法を紹介します。
2.1 リストを使ってデータフレームを作成
# リストを使ってデータフレームを作成
data = [[1, 'Alice', 25], [2, 'Bob', 30], [3, 'Charlie', 35]]
df = pd.DataFrame(data, columns=['ID', 'Name', 'Age'])
print("データフレーム:")
print(df)
出力:
データフレーム:
ID Name Age
0 1 Alice 25
1 2 Bob 30
2 3 Charlie 35
2.2 辞書を使ってデータフレームを作成
辞書を使ってもデータフレームを作成できます。辞書のキーが列名、値が各列のデータに対応します。
# 辞書を使ってデータフレームを作成
data_dict = {'ID': [1, 2, 3], 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df_dict = pd.DataFrame(data_dict)
print("辞書を使ったデータフレーム:")
print(df_dict)
出力:
辞書を使ったデータフレーム:
ID Name Age
0 1 Alice 25
1 2 Bob 30
2 3 Charlie 35
3. データフレームの基本的な操作
Pandasのデータフレームには、行や列を簡単に操作するための多くの便利なメソッドがあります。以下では、列の選択、行の選択、フィルタリングを紹介します。
3.1 列の選択
# 'Name' 列を選択
name_column = df['Name']
print("Name 列:")
print(name_column)
出力:
Name 列:
0 Alice
1 Bob
2 Charlie
Name: Name, dtype: object
3.2 行の選択
行を選択するには、.loc[]
や .iloc[]
を使います。
# 2行目(インデックス1)を選択
row_2 = df.iloc[1]
print("2行目:")
print(row_2)
出力:
2行目:
ID 2
Name Bob
Age 30
Name: 1, dtype: object
3.3 特定の条件でデータをフィルタリング
# 'Age' が30以上の行をフィルタリング
filtered_df = df[df['Age'] >= 30]
print("Age >= 30 の行:")
print(filtered_df)
出力:
Age >= 30 の行:
ID Name Age
1 2 Bob 30
2 3 Charlie 35
4. データの操作
4.1 新しい列の追加
# 'Age' 列に10を足した新しい列 'Age_plus_10' を追加
df['Age_plus_10'] = df['Age'] + 10
print("新しい列 'Age_plus_10' を追加したデータフレーム:")
print(df)
出力:
新しい列 'Age_plus_10' を追加したデータフレーム:
ID Name Age Age_plus_10
0 1 Alice 25 35
1 2 Bob 30 40
2 3 Charlie 35 45
4.2 列の削除
# 'Age_plus_10' 列を削除
df.drop('Age_plus_10', axis=1, inplace=True)
print("'Age_plus_10' 列を削除したデータフレーム:")
print(df)
出力:
'Age_plus_10' 列を削除したデータフレーム:
ID Name Age
0 1 Alice 25
1 2 Bob 30
2 3 Charlie 35
5. データの集約(GroupBy)
Pandasでは、データを特定の列でグループ化し、集約操作を行うことができます。
# 'Age' 列でグループ化し、各グループの平均年齢を計算
grouped_df = df.groupby('Age').mean()
print("グループ化して平均を計算:")
print(grouped_df)
出力:
グループ化して平均を計算:
ID
Age
25 1.0
30 2.0
35 3.0
6. 欠損値の扱い
データに欠損値が含まれている場合、Pandasは欠損値の処理を簡単に行うことができます。
# 欠損値を含むデータフレーム
df_with_nan = pd.DataFrame({
'ID': [1, 2, 3],
'Name': ['Alice', None, 'Charlie'],
'Age': [25, 30, None]
})
print("欠損値を含むデータフレーム:")
print(df_with_nan)
出力:
欠損値を含むデータフレーム:
ID Name Age
0 1 Alice 25.0
1 2 None 30.0
2 3 Charlie NaN
欠損値の削除
# 欠損値を含む行を削除
df_without_nan = df_with_nan.dropna()
print("欠損値を含む行を削除したデータフレーム:")
print(df_without_nan)
出力:
欠損値を含む行を削除したデータフレーム:
ID Name Age
0 1 Alice 25.0
7. データの並べ替え
Pandasでは、データフレームの並べ替えも簡単に行えます。
# 'Age' 列で昇順に並べ替え
df_sorted = df.sort_values(by='Age')
print("Age 列で昇順に並べ替えたデータフレーム:")
print(df_sorted)
出力:
Age 列で昇順に並べ替えたデータフレーム:
ID Name Age
0 1 Alice 25
1 2 Bob 30
2 3 Charlie 35
まとめ
この記事では、Pandasの基本的な使い方をデータフレームの作成、データの操作、欠損値の扱い、集約操作などを通じて学びました。Pandasはデータ解析に欠かせないライブラリであり、データフレームを使って効率的にデータの読み込み、前処理、集計、分析を行うことができます。
Pandasを使いこなすことで、大量のデータを扱う際の効率が格段に向上します。ぜひ、さらに多くの機能を試してみてください!