Pandasは、Pythonでデータ操作や分析を行うための強力なライブラリです。特に、表形式のデータ(データフレーム)の操作を簡単にするためのツールセットを提供しています。データサイエンス、機械学習、統計分析などの分野で広く使用されています。
Pandasとは
Pandasは、Pythonでデータ操作および分析を行うための強力なライブラリです。特にデータフレームというデータ構造を提供しており、大量のデータを簡単に操作するための豊富な機能を備えています。
インストール
まず、Pandasを使用するには、ライブラリをインストールする必要があります。以下のコマンドを使用します:
pip install pandas
データフレームの作成
Pandasの基本的な機能は、データフレームの作成です。データフレームは、行と列からなる2次元のデータ構造です。リスト、辞書、または他のデータソースからデータフレームを作成できます。
import pandas as pd
# 辞書からデータフレームを作成
data = {
"名前": ["Alice", "Bob", "Charlie"],
"年齢": [25, 30, 35],
"都市": ["New York", "Los Angeles", "Chicago"]
}
df = pd.DataFrame(data)
print("データフレーム:\n", df)
データの読み込みと書き込み
Pandasは、CSV、Excel、SQLデータベースなど、さまざまなデータソースからデータを読み込むことができます。また、データをこれらのフォーマットで保存することもできます。
# CSVファイルからデータを読み込む
df = pd.read_csv("data.csv")
print("CSVから読み込んだデータ:\n", df)
# データフレームをCSVファイルに書き込む
df.to_csv("output.csv", index=False)
データの操作
Pandasでは、データのフィルタリング、選択、グループ化、集計、結合などの操作が簡単に行えます。
# データのフィルタリング
filtered_df = df[df["年齢"] > 30]
print("年齢が30以上のフィルタリング:\n", filtered_df)
# 特定の列を選択
selected_columns = df[["名前", "都市"]]
print("名前と都市の列を選択:\n", selected_columns)
# データのグループ化と集計
grouped_df = df.groupby("都市").mean()
print("都市ごとの平均年齢:\n", grouped_df)
# データの結合
df1 = pd.DataFrame({"名前": ["Alice", "Bob"], "スコア": [85, 90]})
df2 = pd.DataFrame({"名前": ["Alice", "Bob"], "年齢": [25, 30]})
merged_df = pd.merge(df1, df2, on="名前")
print("結合されたデータフレーム:\n", merged_df)
データのクリーニング
Pandasは、欠損値の処理や重複データの削除など、データのクリーニング機能も提供しています。
# 欠損値の処理
df["年齢"].fillna(df["年齢"].mean(), inplace=True)
print("欠損値を平均値で埋める:\n", df)
# 重複データの削除
df.drop_duplicates(inplace=True)
print("重複データを削除:\n", df)
実例
例題1: データの集計と可視化
以下の例では、Pandasを使用してデータを集計し、Matplotlibを使用して可視化します。
import pandas as pd
import matplotlib.pyplot as plt
# データフレームの作成
data = {
"名前": ["Alice", "Bob", "Charlie", "David", "Edward"],
"スコア": [85, 90, 78, 92, 88]
}
df = pd.DataFrame(data)
# スコアの平均を計算
mean_score = df["スコア"].mean()
print("平均スコア:", mean_score)
# スコアのヒストグラムをプロット
df["スコア"].plot(kind="hist", bins=5, alpha=0.7)
plt.xlabel("スコア")
plt.ylabel("頻度")
plt.title("スコアのヒストグラム")
plt.show()
例題2: 時系列データの操作
以下の例では、Pandasを使用して時系列データを操作します。
import pandas as pd
# 日付範囲の作成
date_range = pd.date_range(start="2022-01-01", end="2022-01-10")
# ランダムなデータの作成
data = {"値": np.random.randn(len(date_range))}
df = pd.DataFrame(data, index=date_range)
print("時系列データ:\n", df)
# 移動平均の計算
df["移動平均"] = df["値"].rolling(window=3).mean()
print("移動平均を追加:\n", df)