PandasのDataframeが空かどうかを確認する4つの方法|empty,shape,lenメソッドを使ったやり方を解説

スポンサーリンク

この記事では、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('
This is DataFrame-1:'
)
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('
This is DataFrame-2: '
)
print(df2)
 
# Check if the above created DataFrames are empty
# Or not using DataFrame.empty attribute
print(f'
DataFrame-1 is empty: {df1.empty}'
)
print(f'
DataFrame-2 is empty: {df2.empty}'
)

結果は以下の通りです。

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('
This is DataFrame-1:'
)
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('
This is DataFrame-2:'
)
print(df2)
 
# Check if the above created DataFrames are empty
# Or not using DataFrame.shape attribute
print(f'
Number of rows in DataFrame-1: {df1.shape[0]}'
)
print(f'
Number of rows in DataFrame-2: {df2.shape[0]}'
)

結果は以下の通りです。

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('
This is DataFrame-1:'
)
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('
This is DataFrame-2:'
)
print(df2)
 
# Check if the above created DataFrames are empty
# Or not passing the DataFrame object to the len() function
print(f'
Length of DataFrame-1: {len(df1)}'
)
print(f'
Length of DataFrame-2: {len(df2)}'
)

結果は以下の通りです。

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('
This is DataFrame-1:'
)
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('
This is DataFrame-2:'
)
print(df2)
 
# Obtain the DataFrame index list for
# DataFrame-1 & DataFrame-2
# Using the DataFrame.index.values attribute
print(f'
Index list of DataFrame-1: {df1.index.values}'
)
print(f'
Index list of DataFrame-2: {df2.index.values}'
)
 
# Check if the above created DataFrames are empty
# Or not passing the DataFrame index list to the len() function
print(f'
Length of DataFrame-1 index list: {len(df1.index.values)}'
)
print(f'
Length of DataFrame-2 index list: {len(df2.index.values)}'
)

結果は以下の通りです。

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

まとめ

この記事では、pandasのDataFrameオブジェクトが空かどうかをチェックするためのPythonの4つの多様なメソッドを学びました。

上記で説明したことを理解していただけたでしょうか。

Pandasについてもっと学ぶために、私たちにご期待ください。

タイトルとURLをコピーしました