この記事では、Pythonで空のDataFrameを作成するためのさまざまな方法について説明する予定です。
また、空のDataFrameとNaN値を持つDataFrameの違いについても説明します。
それでは、始めましょう。
Pythonで空のDataFrameとは何ですか?
Pythonでは、DataFrameはPythonのpandasモジュールが提供する2次元のデータ構造で、表形式(行と列)でデータを格納します。
空のDataFrameは、完全に空の(データがない)pandas DataFrameオブジェクトで、すべての軸の長さはゼロです。
また、行数か列数が0でなければなりません。
pandas DataFrameオブジェクトが空かどうかは、pandas DataFrameオブジェクトの DataFrame.empty
プロパティを使用して確認することができます。
このプロパティをpandas DataFrameオブジェクトに適用すると、そのDataFrameオブジェクトが空かどうかの条件に応じて、TrueまたはFalseというブール値を返します。
空のデータフレームを作成する方法
Pythonでは、以下の方法で空のpandas DataFrameを作成することができます。
これらを一つずつ理解していきましょう。
1. 行も列もない空のDataFrameを作成する
これは pd.DataFrame()
関数を用いて空の pandas DataFrame オブジェクトを作成する最もシンプルで簡単な方法です。
このメソッドでは、パラメータなしでpandas DataFrameクラスのコンストラクタを呼び出し、空のpandas DataFrameオブジェクトを返します。
このメソッドを実装するためのPythonのコードを見てみましょう。
# Method-1 # Import pandas module import pandas as pd
# Create an empty DataFrame without # Any any row or column # Using pd.DataFrame() function df1 = pd.DataFrame()
print ( 'This is our DataFrame with no row or column: )
print (df1)
# Check if the above created DataFrame # Is empty or not using the empty property print ( ' )
print (df1.empty)
|
結果は以下の通りです。
This is our DataFrame with no row or column: Empty DataFrame Columns: [] Index: [] Is this an empty DataFrame? True |
2. 行だけを含む空のDataFrameを作成する
これは、pd.DataFrame()
関数を使用して行だけを含む空のpandas DataFrameオブジェクトを作成するもう一つの簡単な方法です。
このメソッドでは、pandas DataFrameクラスのコンストラクタをindexという1つのパラメータで呼び出し、渡された行またはインデックスリストを持つ空のPandas DataFrameオブジェクトを返します。
このメソッドを実装するための Python コードを書いてみましょう。
# Method-2 # Import pandas module import pandas as pd
# Create an empty DataFrame with # Five rows but no columns # Using pd.DataFrame() function with rows parameter df2 = pd.DataFrame(index = [ 'R1' , 'R2' , 'R3' , 'R4' , 'R5' ])
print ( 'This is our DataFrame with rows only no columns: )
print (df2)
# Check if the above created DataFrame # Is empty or not using the empty property print ( ' )
print (df2.empty)
|
結果は以下の通りです。
This is our DataFrame with rows only no columns: Empty DataFrame Columns: [] Index: [R1, R2, R3, R4, R5] Is this an empty DataFrame? True |
この記事もチェック:PythonのPandasでブールインデックス参照を実装する方法
3. カラムだけの空の DataFrame を作成する
pd.DataFrame()` 関数を使ってカラムだけを含む空の Pandas DataFrame オブジェクトを作成するには、Pandas DataFrame クラスのコンストラクタに columns という 1 つのパラメータを渡して呼び出し、その結果、渡されたカラムリストを含む空の Pandas DataFrame オブジェクトが返されます。
このメソッドをPythonのコードで実装してみましょう。
# Method-3 # Import pandas module import pandas as pd
# Create an empty DataFrame with # Five columns but no rows # Using pd.DataFrame() function with columns parameter df3 = pd.DataFrame(columns = [ 'C1' , 'C2' , 'C3' , 'C4' , 'C5' ])
print ( 'This is our DataFrame with columns only no rows: )
print (df3)
# Check if the above created DataFrame # Is empty or not using the empty property print ( ' )
print (df3.empty)
|
結果は以下の通りです。
This is our DataFrame with columns only no rows: Empty DataFrame Columns: [C1, C2, C3, C4, C5] Index: [] Is this an empty DataFrame? True |
この記事もチェック:Pandas DataFrameの単一カラムの名前を変更する
4. 行と列の両方を持つ空のDataFrameを作成する
このメソッドでは、行と列の両方を含む空の Pandas DataFrame オブジェクトを作成します。
列とインデックスという2つのパラメータを指定してpandas DataFrameクラスのコンストラクタを呼び出すと、渡されたインデックスと列のリストを持つ空のpandas DataFrameオブジェクトを返します。
このメソッドをPythonのコードで実装する方法を見てみましょう。
# Method-4 # Import pandas module import pandas as pd
# Create an empty DataFrame with # Five rows and five columns # Using pd.DataFrame() function # With columns & index parameters df4 = pd.DataFrame(columns = [ 'C1' , 'C2' , 'C3' , 'C4' , 'C5' ],
index = [ 'R1' , 'R2' , 'R3' , 'R4' , 'R5' ])
print ( 'This is our DataFrame with both rows and columns: )
print (df4)
# Check if the above created DataFrame # Is empty or not using the empty property print ( ' )
print (df4.empty)
|
結果は以下の通りです。
This is our DataFrame with both rows and columns: C1 C2 C3 C4 C5
R1 NaN NaN NaN NaN NaN R2 NaN NaN NaN NaN NaN R3 NaN NaN NaN NaN NaN R4 NaN NaN NaN NaN NaN R5 NaN NaN NaN NaN NaN Is this an empty DataFrame? False |
注意:このメソッドには一つ問題があり、その出力では empty
属性が False を返しています。
これは、このメソッドで作成したDataFrameが、pandasモジュールによって空のDataFrameとして認識されていないことを意味します。
空のデータフレーム vs NaN値を持つデータフレーム
上記のPythonコードの出力に問題があることがわかりました。
空のDataFrameと全てのNaN値を持つDataFrameは、Pandasモジュールによって異なる扱いを受けます。
これは、このメソッドを使って空のpandas DataFrameを作成しようとすると、DataFrameオブジェクトに何もデータを提供または入力しないのに、デフォルトでNaN値で埋め尽くされるために起こります。
そのため、このような種類のpandas DataFrameに empty
属性を適用すると、Falseが返されます。
そこで、この問題を解決する一つの簡単な方法は、DataFrameにデフォルトで配置されているNaN値をすべて削除することです。
pandas DataFrameクラスの dropna()
関数を使用して、DataFrame内のすべてのNaN値を削除することができます。
そして、DataFrameオブジェクトのempty
プロパティを適用して結果を確認すると、Trueが返されます。
Pythonコードで実装してみましょう。
# Compare an empty DataFrame # With a DataFrame with all NaN values # Import pandas module import pandas as pd
# Create an empty DataFrame with # Three rows and four columns # Using pd.DataFrame() function # With columns & index parameters df = pd.DataFrame(columns = [ 'Col-1' , 'Col-2' , 'Col-3' , 'Col-4' ],
index = [ 'Row-1' , 'Row-2' , 'Row-3' ])
print ( 'This is our DataFrame with NaN values: )
print (df)
# Check if the above created DataFrame # Is empty or not using the empty property print ( ' )
print (df.empty)
# Remove all the NaN values using dropna() function # Then apply the empty attribute/property on the DataFrame print ( ' )
print ( 'Is this an empty DataFrame? )
print (df.dropna().empty)
|
結果は以下の通りです。
This is our DataFrame with NaN values: Col-1 Col-2 Col-3 Col-4
Row-1 NaN NaN NaN NaN Row-2 NaN NaN NaN NaN Row-3 NaN NaN NaN NaN Is this an empty DataFrame? False After removing all the NaN values: Is this an empty DataFrame? True |
この記事もチェック:Pandasのデータフレームに行を追加する5つの簡単な方法
まとめ
この記事では、空のPandas DataFrameオブジェクトを作成する4つの方法と、空のDataFrameとNaN値を持つDataFrameの違いについて学びました。
この記事では、空のデータフレームを作成する4つの方法と、空のデータフレームとNaN値を持つデータフレームの違いについて説明しました。
このようなエキサイティングなPythonチュートリアルをもっと見るために私たちと一緒にいてください。
この記事もチェック:PythonでPandasデータフレームの列の順序を変更する4つの方法