【0から学ぶAI】第215回:Pandas入門 〜データ操作ライブラリPandasの基本を説明

目次

前回のおさらいと今回のテーマ

こんにちは!前回は、Pythonで高速な数値計算を行うためのライブラリNumPyの基本について学びました。NumPyを使うことで、配列操作や行列演算、統計計算などが効率的に行えるようになりましたね。

今回は、データ分析に欠かせないライブラリPandasの基本を学びます。Pandasは、データ操作や加工が非常に簡単に行えるライブラリで、特に表形式のデータ(CSVやExcelなど)を扱うのに便利です。それでは、Pandasの基本操作について詳しく見ていきましょう!

Pandasとは?

Pandasは、Pythonでデータ分析を行うためのライブラリで、データの操作、加工、可視化が簡単に行えます。特に、表形式のデータ(データフレーム)を効率よく扱える機能が豊富に揃っており、データサイエンティストやAIエンジニアにとって必須のツールです。

Pandasの主な特徴

  1. データフレーム:行と列からなるデータ構造で、表形式のデータを簡単に扱える。
  2. データの読み書きが簡単:CSV、Excel、SQL、JSONなど様々な形式のデータを簡単に読み込んだり保存したりできる。
  3. データの操作と集計:フィルタリング、グループ化、集計など、データ分析に必要な操作が豊富に揃っている。

Pandasのインストール

PandasはAnacondaに含まれているので、通常はインストールの必要はありませんが、手動でインストールしたい場合は以下のコマンドを使用します。

pip install pandas

それでは、Pandasの基本操作を学んでいきましょう。

Pandasの基本操作

1. Pandasのインポート

まずは、Pandasをインポートします。慣習として、Pandasはpdというエイリアスでインポートされます。

import pandas as pd

2. データフレームの作成

Pandasの中心的なデータ構造はデータフレームです。データフレームは、表形式のデータを扱うための便利な構造で、列と行のラベルが付いています。まずは簡単なデータフレームを作成してみましょう。

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 35, 40],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}

df = pd.DataFrame(data)
print(df)

上記のコードでは、Pythonの辞書からデータフレームを作成しました。出力は以下のようになります。

      Name  Age         City
0    Alice   25     New York
1      Bob   30  Los Angeles
2  Charlie   35      Chicago
3    David   40      Houston

3. データの読み込み

Pandasは様々な形式のデータを簡単に読み込むことができます。例えば、CSVファイルを読み込むには以下のようにします。

df = pd.read_csv('data.csv')

ExcelやJSONファイルなども同様にread_excelread_json関数で読み込むことが可能です。

4. データの確認

データフレームの内容を確認するための便利なメソッドがPandasには多数あります。

  • head(): データの最初の5行を表示
  • tail(): データの最後の5行を表示
  • info(): データフレームの情報(データ型や欠損値の有無など)を表示
  • describe(): 数値データの基本的な統計量(平均、標準偏差、最小値、最大値など)を表示
print(df.head())        # 最初の5行を表示
print(df.info())        # データフレームの情報を表示
print(df.describe())    # 統計情報を表示

5. データの選択とフィルタリング

Pandasでは、特定の列や行を簡単に選択したり、条件を指定してフィルタリングすることができます。

特定の列を選択

# 'Name'列のみを選択
names = df['Name']
print(names)

複数の列を選択

# 'Name'と'Age'列を選択
subset = df[['Name', 'Age']]
print(subset)

条件でフィルタリング

# 'Age'が30以上の行のみを選択
filtered_df = df[df['Age'] >= 30]
print(filtered_df)

6. データの操作(追加、削除、更新)

データフレームのデータを追加、削除、更新する操作も簡単です。

列の追加

# 新しい列 'Salary' を追加
df['Salary'] = [50000, 60000, 70000, 80000]
print(df)

行の削除

# インデックス1の行(Bobの行)を削除
df = df.drop(1)
print(df)

値の更新

# 'Age'列のインデックス0(Alice)の値を変更
df.at[0, 'Age'] = 26
print(df)

7. グループ化と集計

Pandasは、データの集計やグループ化に便利な機能を提供しています。例えば、groupby関数を使うと、特定の列でデータをグループ化し、そのグループごとに集計が可能です。

# 'City'ごとに平均年齢を計算
average_age = df.groupby('City')['Age'].mean()
print(average_age)

8. 欠損値の処理

データには欠損値が含まれることがあります。Pandasには、欠損値を処理するためのメソッドがいくつかあります。

  • isna(): 欠損値をTrueで返す
  • dropna(): 欠損値がある行を削除
  • fillna(): 欠損値を特定の値で埋める
# 欠損値のある行を削除
df_cleaned = df.dropna()

# 欠損値を0で埋める
df_filled = df.fillna(0)

Pandasの実践例

Pandasはデータの可視化や、機械学習の前処理にもよく使われます。以下は簡単なデータの集計と可視化の例です。

データの可視化

PandasとMatplotlibを使って、データのグラフを作成することができます。

import matplotlib.pyplot as plt

# 'City'ごとの年齢の平均を棒グラフで表示
average_age.plot(kind='bar')
plt.title('Average Age by City')
plt.xlabel('City')
plt.ylabel('Average Age')
plt.show()

このコードを実行すると、都市ごとの平均年齢が視覚的に分かる棒グラフが表示されます。

まとめ

今回は、データ操作ライブラリPandasの基本について解説しました。Pandasを使うことで、データの読み込み、加工、フィルタリング、集計が非常に簡単に行えます。データ分析やAI開発において、Pandasは非常に強力なツールであり、NumPyと組み合わせて使うことでさらに効果的になります。

次回予告

次回は、Pandasを使ったデータの読み込みと保存について解説します。CSV、Excel、JSONなどのデータ形式に対応した方法を学び、実際にデータを操作するスキルを身につけていきましょう!


注釈

  • データフレーム:Pandasの中心的なデータ構造で、行と列を持つ表形式のデータを効率的に扱う。
  • **グル

ープ化**:groupbyメソッドを使い、特定の列でデータをグループ分けし、集計する操作。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社PROMPTは生成AIに関する様々な情報を発信しています。
記事にしてほしいテーマや調べてほしいテーマがあればお問合せフォームからご連絡ください。
---
PROMPT Inc. provides a variety of information related to generative AI.
If there is a topic you would like us to write an article about or research, please contact us using the inquiry form.

コメント

コメントする

目次