目次
pandas.DataFrame、pandas.Seriesのサイズ(行数、列数)取得
> > pandas.DataFrame、pandas.Seriesのサイズ(行数、列数)取得
環境
今回動作の確認を行った際のバージョンは下記の通り
python:3.10.9
pandas:1.5.3
データセット:scikit-learnのirisを使用(scikit-learnは1.2.2)
pandas.DataFrameのサイズ取得
データセットの準備
まずはデータセットの準備を行います。
from sklearn.datasets import load_irisif __name__ == '__main__':df = load_iris(as_frame=True).frameprint(df.head())# sepal length (cm) sepal width (cm) ... petal width (cm) target# 0 5.1 3.5 ... 0.2 0# 1 4.9 3.0 ... 0.2 0# 2 4.7 3.2 ... 0.2 0# 3 4.6 3.1 ... 0.2 0# 4 5.0 3.6 ... 0.2 0# [5 rows x 5 columns]
df.shapeによるサイズ取得
データフレームではpandas.DataFrame.shapeを使用することで行数と列数のタプル(行数, 列数)を取得することが出来ます。
from sklearn.datasets import load_irisif __name__ == '__main__':df = load_iris(as_frame=True).frame# 行数と列数取得print(df.shape)# (150, 5)size = df.shape# 行数取得row = size[0]print(row)# 150# 列数取得col = size[1]print(col)# 5
下記の様にアンパックで取得することも可能です。
from sklearn.datasets import load_irisif __name__ == '__main__':df = load_iris(as_frame=True).frame# 行数と列数取得row_2, col_2 = df.shapeprint(row_2)# 150print(col_2)# 5
len()によるサイズ取得
Pythonの組み込み関数len()を使用することでも行数、列数を取得することが可能です。
from sklearn.datasets import load_irisif __name__ == '__main__':df = load_iris(as_frame=True).frame# 行数取得row = len(df)print(row)# 150# 列数取得col = len(df.columns)print(col)# 5
df.info()によるサイズ取得
pandas.DataFrame.infoを使用することでもサイズやメモリ使用量などデータフレームの情報を取得することが出来ます。
ただし、df.shapeなどと違い結果は標準出力されるため、変数に値を格納して使用することはできません。
print()を使用しなくても標準出力されます。
from sklearn.datasets import load_irisif __name__ == '__main__':df = load_iris(as_frame=True).frame# データフレームの情報取得df.info()# <class 'pandas.core.frame.DataFrame'># RangeIndex: 150 entries, 0 to 149# Data columns (total 5 columns):# # Column Non-Null Count Dtype# --- ------ -------------- -----# 0 sepal length (cm) 150 non-null float64# 1 sepal width (cm) 150 non-null float64# 2 petal length (cm) 150 non-null float64# 3 petal width (cm) 150 non-null float64# 4 target 150 non-null int32# dtypes: float64(4), int32(1)# memory usage: 5.4 KB
全要素数取得
pandas.DataFrame.sizeを使用することで全要素数(=行数×列数)を取得することが出来ます。 上記で取得した行数と列数をかけた値になっていることがわかります。
from sklearn.datasets import load_irisif __name__ == '__main__':df = load_iris(as_frame=True).frame# 全要素数取得ele = df.sizeprint(ele)# 750
pandas.Seriesのサイズ取得
pandas.Seriesも基本的にはpandas.DataFrameと同様の方法でサイズを取得することが出来ます。
ただし、pandas.Seriesなので基本的に列数は1となるためpandas.DataFrame.shapeを使用した場合、要素数が1のタプルとなるので注意が必要です。
上記で使用したデータフレームから「sepal length (cm)」の列を抽出して使用します。
from sklearn.datasets import load_irisif __name__ == '__main__':df = load_iris(as_frame=True).frameseries = df['sepal length (cm)']# 行数取得print(series.shape)# (150,)size = series.shape# 行数取得row = size[0]print(row)# 150# len()を使って行数取得row = len(series)print(row)# 150# sizeを使って全要素数取得ele = series.sizeprint(ele)# 150