この記事では、pandasのDataFrameが空かどうかを確認するための4つの多様な方法について説明します。
それでは、始めましょう。
方法1:DataFrame.empty属性を使用する
これは Pandas DataFrame オブジェクトが空かどうかを確認するために最もよく使われる方法です。
この方法では、Pandas DataFrame クラスの DataFrame.empty 属性を使用します。
Pandas DataFrameオブジェクトに DataFrame.empty 属性を適用すると、True または False というブーリアン値が返されます。
まず、DataFrameオブジェクトが空かどうかを確認し、空でない場合はFalseを返します。
それでは、Pythonのコードで実装してみましょう。
# Import pandas moduleimport pandas as pd
# Create an empty DataFrame# Using pd.DataFrame() functiondf1 = pd.DataFrame()
print(')
print(df1)
# Create a non-empty DataFrame# Using pd.DataFrame() functiondf2 = 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 attributeprint(f')
print(f')
|
結果は以下の通りです。
This is DataFrame-1:Empty DataFrameColumns: []Index: []This is DataFrame-2: Char ASCII
0 A 651 B 662 C 673 D 684 E 69DataFrame-1 is empty: TrueDataFrame-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 moduleimport pandas as pd
# Create an empty DataFrame with 5 columns# Using pd.DataFrame() functiondf1 = pd.DataFrame(columns = ['A', 'B', 'C', 'D', 'E'])
print(')
print(df1)
# Create a non-empty DataFrame with 5 rows & 2 columns# Using pd.DataFrame() functiondf2 = 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 attributeprint(f')
print(f')
|
結果は以下の通りです。
This is DataFrame-1:Empty DataFrameColumns: [A, B, C, D, E]Index: []This is DataFrame-2: Char ASCII
0 A 651 B 662 C 673 D 684 E 69Number of rows in DataFrame-1: 0Number 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 moduleimport pandas as pd
# Create an empty DataFrame with 3 columns# Using pd.DataFrame() functiondf1 = pd.DataFrame(columns = ['C1', 'C2', 'C3'])
print(')
print(df1)
# Create a non-empty DataFrame with 4 rows & 2 columns# Using pd.DataFrame() functiondf2 = 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() functionprint(f')
print(f')
|
結果は以下の通りです。
This is DataFrame-1:Empty DataFrameColumns: [C1, C2, C3]Index: []This is DataFrame-2: Char ASCII
0 a 971 b 982 c 993 d 100Length of DataFrame-1: 0Length 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 moduleimport pandas as pd
# Create an empty DataFrame with 3 columns# Using pd.DataFrame() functiondf1 = 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() functiondf2 = 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 attributeprint(f')
print(f')
# Check if the above created DataFrames are empty # Or not passing the DataFrame index list to the len() functionprint(f')
print(f')
|
結果は以下の通りです。
This is DataFrame-1:Empty DataFrameColumns: [Col-1, Col-2, Col-3]Index: []This is DataFrame-2: Col-1 Col-2
i Python .pyii Matlab .matiii Csharp .csIndex list of DataFrame-1: []Index list of DataFrame-2: ['i' 'ii' 'iii']Length of DataFrame-1 index list: 0Length of DataFrame-2 index list: 3 |
この記事もチェック:PythonのPandasでブールインデックス参照を実装する方法
まとめ
この記事では、pandasのDataFrameオブジェクトが空かどうかをチェックするためのPythonの4つの多様なメソッドを学びました。
上記で説明したことを理解していただけたでしょうか。
Pandasについてもっと学ぶために、私たちにご期待ください。