Skip to content

Pandasデータフレームの簡単な集約方法

Updated on

データサイエンティストのツールボックスで最も強力なツールであるPandasは、特にデータフレームの集計のタスクにおいて大いに役立ちます。これらの方法を理解することは、巨大なデータセットを消化するだけでなく、洞察をより効果的に提供できるようにすることができます。ここでは、これらの目的に使用されるさまざまな関数を探求し、明快な例を提供します。

デモのために、Kaggleのスーパーマーケット販売データセットを使用します。

# ライブラリのインポート
import pandas as pd
 
# ファイルのインポート
ss = pd.read_csv('supermarket_sales.csv')
 
# データのプレビュー
ss.head()

Pythonで簡単にデータ可視化を行いたいですか?

PyGWalkerは、Jupyter Notebookベースの環境でデータ解析と可視化のワークフローをスピードアップすることができるオープンソースのPythonプロジェクトです。

PyGWalker (opens in a new tab)は、Pandasデータフレーム(またはPolarsデータフレーム)を、変数をドラッグしてグラフを簡単に作成できるビジュアルUIに変換します。以下のコードを使用するだけです:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

以下のリンクをクリックすると、PyGWalkerをオンラインノートブックで実行できます:

それに、GitHubで⭐️を付けてください!

KaggleノートブックでPyGWalkerを実行 (opens in a new tab)Google ColabでPyGWalkerを実行 (opens in a new tab)GitHubでPyGWalkerに⭐️を付ける (opens in a new tab)
KaggleノートブックでPyGWalkerを実行 (opens in a new tab)Google ColabでPyGWalkerを実行 (opens in a new tab)GitHubでPyGWalkerに⭐️を付ける (opens in a new tab)

info()を使った簡潔なサマリー

info()メソッドは、データフレームの簡潔なサマリーを提供します。データクリーニング中に特に役立ちます。レコード数、列の名前、データ型、インデックス範囲、およびメモリ使用量が表示されます。

## ss.info()による記述統計量
 
`describe()`関数は、欠損値を除外して、データセットの分散や形状を示す記述統計量を生成します。
 
```python
ss.describe()

デフォルトでは、数値型の結果が返されますが、includeパラメータを使用してデータフレーム内の異なるデータ型の統計情報を表示することができます。

ss.describe(include=['object', 'int'])

value_counts()によるユニークな値の数のカウント

value_counts()関数は、指定されたシリーズにおけるユニークな値の数を返します。デフォルトでは、欠損値は除外されます。

ss['City'].value_counts()

nunique()による重複を除いた観測値の数のカウント

nunique()関数は、重複を除いた観測値の数をカウントすることができます。データフレームまたはシリーズの両方に適用できます。

ss.nunique()

sum()による値の合計の計算

sum()関数は、指定された軸方向の値の合計を返します。データフレームとシリーズの両方で使用できます。

ss.sum(numeric_only=True)

count()による欠損値でない観測値の数のカウント

count()関数は、欠損値でない観測値の数を返します。データフレームとシリーズの両方に適用できます。

ss.count(numeric_only=True)

最小値、最大値、平均、中央値

これらの関数(min()max()mean()median())は、それぞれ値の最小値、最大値、平均、中央値を返します。

ss.max()
ss.min()
ss.mean()
ss.median()

agg()関数を使って複数の集計操作を行う

agg()関数を使用することで、指定した軸上で同じデータセットに対して複数の集計操作を適用することができます。

ss.agg(['count', 'min', 'max', 'mean'])

groupby()を使ってデータをグループ化する

groupby()を使用することで、同じ値を持つデータをグループ化し、sum、max、minなどの集計関数を適用することができます。

ss.groupby('City').sum()
ss.groupby(['City', 'Customer type']).sum()

特定の値でグループ化し、同じデータセットに対して複数の集計操作を適用するには、agg()関数を使用することができます。

ss.groupby('City').agg({'Total': ['count', 'min', 'max', 'mean'], 'Rating': 'mean'})

結論

Pandasデータフレームを要約することは最初の見た目では複雑に見えるかもしれませんが、これらのテクニックをしっかりと把握することで、データセットのフルポテンシャルを引き出すことができます。これらの方法をマスターすることで、データ分析プロセスを効率化し、明確で簡潔な形で洞察を提供することができます。