Pythonとpandasを使ってExcelデータを効率的に集計・分析する方法を解説します。フィルタリング、ソート、集計、ピボットテーブルの作成など、実践的なデータ操作を学びましょう。
pandasを活用して Excel データを集計・分析する方法を解説します。
まずは、pandas をインストールしておきましょう。
BASHpip install pandas openpyxl
Excel データは、以下のような形式を想定します。
商品名 | 価格 | 在庫数 |
---|---|---|
りんご | 100 | 50 |
みかん | 120 | 40 |
バナナ | 80 | 60 |
ぶどう | 200 | 30 |
もも | 150 | 20 |
Python でこの Excel データを DataFrame に読み込みます。
PYTHONimport pandas as pd # Excelデータを読み込む df = pd.read_excel("sample.xlsx", engine='openpyxl') # データの表示 print(df)
商品名 価格 在庫数 0 りんご 100 50 1 みかん 120 40 2 バナナ 80 60 3 ぶどう 200 30 4 もも 150 20
特定の列だけを抽出することができます。
PYTHONprint(df["商品名"])
0 りんご 1 みかん 2 バナナ 3 ぶどう 4 もも Name: 商品名, dtype: object
解説
この方法を使うと、特定の列だけを抽出して分析することができます。
価格が 100 円以上の商品を抽出。
PYTHONfiltered_df = df[df["価格"] >= 100] print(filtered_df)
商品名 価格 在庫数 0 りんご 100 50 1 みかん 120 40 3 ぶどう 200 30 4 もも 150 20
解説
df[df["価格"] >= 100]
のように書くことで、条件を満たすデータだけを抽出できます。
価格の昇順・降順で並び替え。
PYTHON# 昇順 print(df.sort_values(by="価格"))
商品名 価格 在庫数 2 バナナ 80 60 0 りんご 100 50 1 みかん 120 40 4 もも 150 20 3 ぶどう 200 30
解説
デフォルトでは昇順(小さい順)に並び替えられます。
PYTHON# 降順 print(df.sort_values(by="価格", ascending=False))
商品名 価格 在庫数 3 ぶどう 200 30 4 もも 150 20 1 みかん 120 40 0 りんご 100 50 2 バナナ 80 60
解説
ascending=False
を指定することで、降順(大きい順)に並び替えられます。
価格と在庫数の合計や平均を計算。
PYTHONprint("価格の合計:", df["価格"].sum()) print("価格の平均:", df["価格"].mean()) print("在庫数の合計:", df["在庫数"].sum())
価格の合計: 650 価格の平均: 130.0 在庫数の合計: 200
PYTHON# カテゴリ列を追加 df["カテゴリ"] = ["果物", "果物", "果物", "果物", "果物"] # カテゴリごとの平均価格 category_mean = df.groupby("カテゴリ")["価格"].mean() print(category_mean)
カテゴリ 果物 130.0 Name: 価格, dtype: float64
解説
groupby
を使うと、特定のカテゴリごとに集計ができます。
pandas で Excel のピボットテーブルのような集計を行うことができます。
PYTHONpivot_table = df.pivot_table(values="価格", index="商品名", aggfunc="sum") print(pivot_table)
価格 商品名 りんご 100 みかん 120 バナナ 80 ぶどう 200 もも 150
解説
pivot_table
を使うことで、エクセルのピボットテーブルのような集計が可能になります。
PYTHON# フィルタリングしたデータをExcelに保存 filtered_df.to_excel("filtered_output.xlsx", index=False, engine='openpyxl')
解説
データの集計結果を Excel ファイルとして保存し、レポート作成や共有に活用できます。
groupby
や pivot_table
を使えば、より高度な集計が可能。データ分析の効率を上げるために、ぜひ pandas の活用を試してみてください。
当サイトの情報は、一般的な参考情報として提供しております。
正確な情報の掲載に努めておりますが、その内容の正確性・完全性・最新性を保証するものではありません。
記事の内容をご利用の際は、ご自身の責任において判断し、必要に応じて専門家にご相談ください。
当サイトの情報の利用により生じたいかなる損害についても、一切の責任を負いかねますのでご了承ください。
※ 本ページでは、著作権法に基づき、適正な引用の範囲内でコンテンツを紹介しています。
オリジナルの情報は発信元をご確認ください。
もし問題がありましたら、こちら からお問い合わせください。