こんにちは、JS2IIUです。ファイルなどから読み込んだDataFrameの大きさを確認する場面は多いと思います。要素数をカウントする方法はいくつかありますが、それぞれ特徴が異なります。うまく使い分けしていきましょう。今回もよろしくお願いします。
| メソッド/属性 | 用途 | 戻り値 | 欠損値の扱い | 使い所 |
|---|---|---|---|---|
.size | 全体の要素数を把握したいとき | 整数(行数×列数) | 無視せずカウント | DataFrame全体のスケールを確認するとき |
.shape | 行数と列数の両方を確認したいとき | タプル(行数, 列数) | 無視される | データの構造を把握したいとき |
len() | 行数だけを知りたいとき | 整数(行数) | 無視される | シンプルに行数だけが必要なとき |
.count() | 有効な値の数を確認したいとき | Series(列ごとの有効値数) | 無視される | 欠損値を考慮した集計が必要なとき |
はじめに
Pandasは、Pythonでのデータ処理や分析を強力にサポートするライブラリです。本記事では、PandasのDataFrameやSeries内の要素数をカウントする方法について解説します。具体的には、以下の4つのメソッドや属性の違いと使い方を取り上げます。
.size.shapelen().count()
これらは、データの総数や有効な値の数を確認する際に役立ちます。例えば、データのスケール感を把握したり、欠損値を考慮したデータの要素数をカウントしたりする場合に便利です。この記事を読むことで、状況に応じて適切な方法を選べるようになります。
各メソッド・属性の違いと使い方
1. .size
- 説明: DataFrame全体の要素数(行数×列数)を返します。
- 欠損値: 無視されず、単純に全てのセルをカウントします。
サンプルコード:
import pandas as pd
data = {
'A': [1, 2, 3],
'B': [4, 5, None]
}
df = pd.DataFrame(data)
print("DataFrame:")
print(df)
print("\n.sizeの結果:", df.size)
結果:
DataFrame:
A B
0 1 4.0
1 2 5.0
2 3 NaN
.sizeの結果: 6
2. .shape
- 説明: DataFrameの形状(行数と列数のタプル)を返します。
- 欠損値: 無視されます。
サンプルコード:
print(".shapeの結果:", df.shape)
print("行数:", df.shape[0])
print("列数:", df.shape[1])
結果:
.shapeの結果: (3, 2)
行数: 3
列数: 2
3. len()
- 説明: DataFrameの行数を返します(列数ではありません)。
- 欠損値: 無視されます。
サンプルコード:
print("len()の結果:", len(df))
結果:
len()の結果: 3
4. .count()
- 説明: 各列ごとに欠損値を除いた有効な値の数をカウントします。
- 欠損値: 無視されます。
サンプルコード:
print(".count()の結果:")
print(df.count())
結果:
.count()の結果:
A 3
B 2
dtype: int64
使い分けのポイント
再掲
| メソッド/属性 | 用途 | 戻り値 | 欠損値の扱い | 使い所 |
|---|---|---|---|---|
.size | 全体の要素数を把握したいとき | 整数(行数×列数) | 無視せずカウント | DataFrame全体のスケールを確認するとき |
.shape | 行数と列数の両方を確認したいとき | タプル(行数, 列数) | 無視される | データの構造を把握したいとき |
len() | 行数だけを知りたいとき | 整数(行数) | 無視される | シンプルに行数だけが必要なとき |
.count() | 有効な値の数を確認したいとき | Series(列ごとの有効値数) | 無視される | 欠損値を考慮した集計が必要なとき |
まとめ
この記事では、PandasのDataFrame内の要素数をカウントする4つの方法を紹介しました。それぞれの特性を理解し、目的に応じて使い分けることで効率的なデータ処理が可能になります。
参考
Seriesの要素数カウントについては、こちらの記事を参考にして下さい。
今回も少しだけPRです。
Pandasについて詳しく知りたいかた、もっと使いこなしたい方におすすめの本です。数年前に購入しましたが、今も手元に置いて時々見返しています。
「pandasクックブック Pythonによるデータ処理のレシピ」Theodore Petrou著、黒川利明訳。
最後まで読んでいただきありがとうございます。73



コメント