Python Pandas入門:groupby()とcount()で観測データを数える方法
Pandasで観測データ(行数)をカウントするには、まず groupby() メソッドでデータをグループ化し、その結果に対して count() を適用します。本記事では、商品データを例に、カテゴリごとの観測数を集計する手順をわかりやすく解説します。
1. ライブラリのインポートとDataFrameの作成
はじめにpandasをインポートし、サンプル用のDataFrameを作成します。ここでは「商品名」「商品カテゴリ」「数量」の3列を持つデータを用意しました。
import pandas as pd
# DataFrameを作成
dataFrame = pd.DataFrame({
'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Camera', 'Graphic Card', 'Earphone'],
'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Electronics', 'Computer', 'Mobile Phone'],
'Quantity': [10, 50, 10, 20, 25, 50]
})
このDataFrameには6件の商品データが含まれており、「Product Category」列には同じ値が複数回登場します。このような重複値を持つ列は、グループ化による集計に適しています。
2. groupby()でデータをグループ化する
重複した値を持つ「Product Category」列を基準に、データをグループ化します。
group = dataFrame.groupby("Product Category")
3. count()で観測数を取得する
グループ化したオブジェクトに対して count() を呼び出すと、各カテゴリに含まれる観測数(欠損値NaNを除く値の個数)が列ごとに集計されます。
group.count()
完全なサンプルコード
ここまでの手順をまとめたコード全体は以下の通りです。
import pandas as pd
# DataFrameを作成
dataFrame = pd.DataFrame({
'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Camera', 'Graphic Card', 'Earphone'],
'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Electronics', 'Computer', 'Mobile Phone'],
'Quantity': [10, 50, 10, 20, 25, 50]
})
# DataFrameを表示
print("Dataframe...\n", dataFrame)
# 観測数をカウント
group = dataFrame.groupby("Product Category")
print("\nResultant DataFrame...\n", group.count())
実行結果
上記のコードを実行すると、次のような出力が得られます。
Dataframe...
Product Category Product Name Quantity
0 Computer Keyboard 10
1 Mobile Phone Charger 50
2 Electronics SmartTV 10
3 Electronics Camera 20
4 Computer Graphic Card 25
5 Mobile Phone Earphone 50
Resultant DataFrame...
Product Name Quantity
Product Category
Computer 2 2
Electronics 2 2
Mobile Phone 2 2
結果を見ると、「Computer」「Electronics」「Mobile Phone」の各カテゴリに、それぞれ2件ずつの観測データが含まれていることが確認できます。このように groupby() と count() を組み合わせることで、カテゴリ別のデータ件数を簡単に集計できます。
-
Python Pandasでデータセットをプロットして下降トレンド(ダウントレンド)を表示する方法
時系列分析において、データが継続的に下向きのパターンを示すことを下降トレンド(ダウントレンド)と呼びます。株価や売上データなどの分析では、この下降トレンドを視覚的に把握することが非常に重要です。 ここでは、PandasとMatplotlibを使ってCSVファイルのデータを読み込み、下降トレンドをグラフに表示する手順を解説します。 必要なライブラリのインポート まず、必要なライブラリをインポートします。 import pandas as pd import matplotlib.pyplot as plt CSVファイルからデータを読み込む 次に、CSVファイルのデータをPandasのDataF
-
Python Pandasでデータセットをプロットして上昇トレンドを表示する方法
時系列分析において、データが時間の経過とともに上昇していくパターンが確認できる状態を「上昇トレンド(Uptrend)」と呼びます。本記事では、PythonのPandasとMatplotlibを使って、実際のデータセットから上昇トレンドを可視化する方法を解説します。使用するデータセット今回の例では、以下のような販売記録データ「SalesRecords.csv」を使用します。このファイルには購入日や売上などの情報が含まれています。必要なライブラリのインポートまず、PandasとMatplotlibという2つのライブラリをインポートします。Pandasはデータの読み込みや加工を担当し、Matplot