🐼
🐼 Pandasの高度なデータ操作テクニック
Pandasはデータ分析において非常に強力なツールですが、基本操作だけでなく、より効率的で高度なデータ操作テクニックを活用することで、分析の幅が大きく広がります。
本記事では、Pandasの高度なデータ操作テクニックを次の4つのテーマに分けて詳しく解説します。
- マルチインデックスの活用
- データのフィルタリングと条件指定
- 効率的なデータ操作のコツ
- データのエクスポート
1️⃣ マルチインデックスの活用
マルチインデックスは、データを階層的に管理できる便利な機能です。
複雑なデータ構造を扱う際に役立ちます。
🔹 マルチインデックスの作成
import pandas as pd
# サンプルデータ
data = {
'都市': ['東京', '大阪', '東京', '大阪'],
'年': [2022, 2022, 2023, 2023],
'売上': [400, 350, 420, 380]
}
# マルチインデックスの作成
df = pd.DataFrame(data).set_index(['都市', '年'])
print(df)
🖥️ 実行結果
売上
都市 年
東京 2022 400
大阪 2022 350
東京 2023 420
大阪 2023 380
🔹 データの選択
# 特定の都市のデータ取得
print(df.loc['東京'])
# 特定の年のデータ取得
print(df.xs(2023, level='年'))
🖥️ 実行結果
売上
年
2022 400
2023 420
売上
都市
東京 420
大阪 380
🔹 マルチインデックスの並べ替え
sort_index() を活用すると、階層構造を保ちながらデータを並べ替えることができます。
# 年ごとに昇順でソート
print(df.sort_index(level='年'))
🖥️ 実行結果
売上
都市 年
大阪 2022 350
東京 2022 400
大阪 2023 380
東京 2023 420
2️⃣ データのフィルタリングと条件指定
Pandasでは、複数の条件を組み合わせたデータの抽出が可能です。
🔹 複数条件のデータ抽出 (query())
query() は複雑な条件でもシンプルなコードで書ける便利なメソッドです。
# 売上が400以上かつ「東京」のデータを抽出
filtered_df = df.query('売上 >= 400 & 都市 == "東京"')
print(filtered_df)
🖥️ 実行結果
売上
都市 年
東京 2022 400
2023 420
🔹 部分一致検索 (str.contains())
文字列データの一部を条件にした検索ができます。
# 「東京」を含むデータ
print(df[df.index.get_level_values('都市').str.contains('東京')])
🖥️ 実行結果
売上
都市 年
東京 2022 400
2023 420
🔹 .isin() と .between() の活用
# 複数の値を指定してフィルタリング
print(df[df['売上'].isin([350, 420])])
# 範囲指定でフィルタリング
print(df[df['売上'].between(350, 400)])
🖥️ 実行結果
売上
都市 年
大阪 2022 350
東京 2023 420
売上
都市 年
東京 2022 400
大阪 2022 350
2023 380
3️⃣ 効率的なデータ操作のコツ
データの処理を効率化するための便利なテクニックを紹介します。
🔹 .apply() 関数の活用
apply() を使用することで、カラムごとに関数を適用できます。
# 条件に応じて「評価」列を追加
df['評価'] = df['売上'].apply(lambda x: '好調' if x >= 400 else '不調')
print(df)
🖥️ 実行結果
売上 評価
都市 年
東京 2022 400 好調
大阪 2022 350 不調
東京 2023 420 好調
大阪 2023 380 不調
🔹 .map() でのデータ変換
map() は、カテゴリデータやラベルの変換に便利です。
# MultiIndexのレベル('都市')をリネームする
df.index = df.index.set_levels(
df.index.levels[0].map({'東京': 'Tokyo', '大阪': 'Osaka'}),
level=0
)
print(df)
🖥️ 実行結果
売上 評価
都市 年
Tokyo 2022 400 好調
Osaka 2022 350 不調
Tokyo 2023 420 好調
Osaka 2023 380 不調
4️⃣ データのエクスポート
分析したデータをCSVやExcelに出力する方法を紹介します。
🔹 .to_csv() でのCSV出力
df.to_csv('売上データ.csv', encoding='utf-8-sig')
🔹 .to_excel() でのExcel出力
df.to_excel('売上データ.xlsx', index=True)
🔹 .to_sql() でのデータベース出力
データベースへの保存も可能です。
from sqlalchemy import create_engine
# SQLiteのデータベースにデータを保存
engine = create_engine('sqlite:///データベース.db')
df.to_sql('sales_data', engine, if_exists='replace')
🎯 まとめ
本記事では、Pandasの高度なデータ操作テクニックとして以下の内容を紹介しました。
✅ マルチインデックスの活用
✅ データのフィルタリングと条件指定
✅ 効率的なデータ操作のコツ
✅ データのエクスポート
これらのテクニックを活用することで、より複雑なデータ分析や実務でのデータ処理がスムーズに行えるようになります。
次回は、「Pandasの時系列データ処理と可視化」について詳しく解説します。
Discussion