この記事では、pandasのDataFrameが空かどうかを確認するための4つの多様な方法について説明します。
それでは、始めましょう。
方法1:DataFrame.empty属性を使用する
これは Pandas DataFrame オブジェクトが空かどうかを確認するために最もよく使われる方法です。
この方法では、Pandas DataFrame クラスの DataFrame.empty
属性を使用します。
Pandas DataFrameオブジェクトに DataFrame.empty
属性を適用すると、True
または False
というブーリアン値が返されます。
まず、DataFrameオブジェクトが空かどうかを確認し、空でない場合はFalseを返します。
それでは、Pythonのコードで実装してみましょう。
# Import pandas module import pandas as pd
# Create an empty DataFrame # Using pd.DataFrame() function df1 = pd.DataFrame()
print ( ' )
print (df1)
# Create a non-empty DataFrame # Using pd.DataFrame() function df2 = pd.DataFrame({ 'Char' : [ 'A' , 'B' , 'C' , 'D' , 'E' ],
'ASCII' : [ 65 , 66 , 67 , 68 , 69 ]})
print ( ' )
print (df2)
# Check if the above created DataFrames are empty # Or not using DataFrame.empty attribute print (f ' )
print (f ' )
|
結果は以下の通りです。
This is DataFrame-1: Empty DataFrame Columns: [] Index: [] This is DataFrame-2: Char ASCII
0 A 65 1 B 66 2 C 67 3 D 68 4 E 69 DataFrame-1 is empty: True DataFrame-2 is empty: False |
方法2: DataFrame.shape 属性を使用する
これは、与えられたPandas DataFrameが空かどうかを確認するために、2番目によく使われる方法です。
このメソッドでは、Pandas DataFrameクラスの DataFrame.shape
属性を使用します。
shape属性は、DataFrame オブジェクトの次元 (すなわち、行と列の数) を表すタプルを返します。
DataFrameオブジェクトが空かどうかをチェックするために、DataFrameオブジェクトにshape` 属性を適用する必要があります。
そして、DataFrameオブジェクトが空であるかどうかをチェックします。
これは、DataFrameに含まれる行数がゼロであることを表します。
DataFrameオブジェクトが空でなければ、DataFrameオブジェクトの行数を返します。
これを実装するためのPythonコードを書いてみましょう。
# Import pandas module import pandas as pd
# Create an empty DataFrame with 5 columns # Using pd.DataFrame() function df1 = pd.DataFrame(columns = [ 'A' , 'B' , 'C' , 'D' , 'E' ])
print ( ' )
print (df1)
# Create a non-empty DataFrame with 5 rows & 2 columns # Using pd.DataFrame() function df2 = pd.DataFrame({ 'Char' : [ 'A' , 'B' , 'C' , 'D' , 'E' ],
'ASCII' : [ 65 , 66 , 67 , 68 , 69 ]})
print ( ' )
print (df2)
# Check if the above created DataFrames are empty # Or not using DataFrame.shape attribute print (f ' )
print (f ' )
|
結果は以下の通りです。
This is DataFrame-1: Empty DataFrame Columns: [A, B, C, D, E] Index: [] This is DataFrame-2: Char ASCII
0 A 65 1 B 66 2 C 67 3 D 68 4 E 69 Number of rows in DataFrame-1: 0 Number of rows in DataFrame-2: 5 |
方法3: len()関数にDataFrameオブジェクトを渡す
これは、与えられたpandas DataFrameオブジェクトが空かどうかをチェックするための、あまり一般的に使われない方法の1つです。
このメソッドでは、 len()
関数を使用します。
DataFrame が空かどうかを調べるには、pandas の DataFrame オブジェクトを直接 len()
関数に渡します。
もし、渡されたDataFrameオブジェクトが空のDataFrameであれば、len()
関数は0を返し、そのDataFrameオブジェクトの行数は0であることを表します。
しかし、渡されたDataFrameオブジェクトが空でない場合、len()
関数はDataFrameオブジェクトの行数を表すゼロでない値を返します。
これをPythonのコードで実装してみましょう。
# Import pandas module import pandas as pd
# Create an empty DataFrame with 3 columns # Using pd.DataFrame() function df1 = pd.DataFrame(columns = [ 'C1' , 'C2' , 'C3' ])
print ( ' )
print (df1)
# Create a non-empty DataFrame with 4 rows & 2 columns # Using pd.DataFrame() function df2 = pd.DataFrame({ 'Char' : [ 'a' , 'b' , 'c' , 'd' ], 'ASCII' : [ 97 , 98 , 99 , 100 ]})
print ( ' )
print (df2)
# Check if the above created DataFrames are empty # Or not passing the DataFrame object to the len() function print (f ' )
print (f ' )
|
結果は以下の通りです。
This is DataFrame-1: Empty DataFrame Columns: [C1, C2, C3] Index: [] This is DataFrame-2: Char ASCII
0 a 97 1 b 98 2 c 99 3 d 100 Length of DataFrame-1: 0 Length of DataFrame-2: 4 |
上記の出力では、DataFrameの長さはその中にある行数を表しています。
つまり、空のDataFrameの長さは0、空でないDataFrameの長さは0でない、つまり行の数と等しいということです。
方法4:DataFrameのインデックスの長さをチェックする
これは、与えられた Pandas DataFrame オブジェクトが空かどうかをチェックするための、あまり一般的でない方法の一つです。
ここでも len()
関数を使用して DataFrame が空かどうかをチェックします。
しかし、pandas DataFrame オブジェクト全体を len()
関数に渡すのではなく、DataFrame のインデックスリストを len()
関数に渡すことができます。
pandas DataFrameクラスの DataFrame.index.values
属性を使用すると、DataFrameオブジェクトのインデックスを要素として含むPythonのリストを返すことができます。
もし、渡されたDataFrameのインデックスリストが空の場合、len()
関数はゼロの値を返します。
これは、DataFrameの行数がゼロであることを意味します。
しかし、渡されたDataFrameのインデックスリストが空でない場合、len()
関数はゼロ以外の値を返します。
これはDataFrameのインデックスリストがいくつかの値を持っていることを意味します。
これを実装するためのPythonのコードを見てみましょう。
# Import pandas module import pandas as pd
# Create an empty DataFrame with 3 columns # Using pd.DataFrame() function df1 = pd.DataFrame(columns = [ 'Col-1' , 'Col-2' , 'Col-3' ])
print ( ' )
print (df1)
# Create a non-empty DataFrame with 3 rows & 2 columns # Using pd.DataFrame() function df2 = pd.DataFrame({ 'Col-1' : [ 'Python' , 'Matlab' , 'Csharp' ],
'Col-2' : [ '.py' , '.mat' , '.cs' ]}, index = [ 'i' , 'ii' , 'iii' ])
print ( ' )
print (df2)
# Obtain the DataFrame index list for # DataFrame-1 & DataFrame-2 # Using the DataFrame.index.values attribute print (f ' )
print (f ' )
# Check if the above created DataFrames are empty # Or not passing the DataFrame index list to the len() function print (f ' )
print (f ' )
|
結果は以下の通りです。
This is DataFrame-1: Empty DataFrame Columns: [Col-1, Col-2, Col-3] Index: [] This is DataFrame-2: Col-1 Col-2
i Python .py ii Matlab .mat iii Csharp .cs Index list of DataFrame-1: [] Index list of DataFrame-2: ['i' 'ii' 'iii'] Length of DataFrame-1 index list: 0 Length of DataFrame-2 index list: 3 |
この記事もチェック:PythonのPandasでブールインデックス参照を実装する方法
まとめ
この記事では、pandasのDataFrameオブジェクトが空かどうかをチェックするためのPythonの4つの多様なメソッドを学びました。
上記で説明したことを理解していただけたでしょうか。
Pandasについてもっと学ぶために、私たちにご期待ください。