Pythonのデータ分析ライブラリであるPandasには、DataFrameの等価性を確認するための便利な関数assert_frame_equal
があります。この関数は主にユニットテストで使用され、2つのDataFrameが等しいかどうかを確認します。
import pandas as pd
# DataFrameの作成
df1 = pd.DataFrame({'a': [1, 2], 'b': [3, 4]})
df2 = pd.DataFrame({'a': [1, 2], 'b': [3.0, 4.0]})
# DataFrameの比較
pd.testing.assert_frame_equal(df1, df2, check_dtype=False)
上記のコードでは、df1
とdf2
の2つのDataFrameを作成し、assert_frame_equal
関数を使用してこれらが等しいかどうかを確認しています。check_dtype=False
とすることで、データ型の違いを無視してDataFrameの比較が可能です。
また、数値の比較については、rtol
やatol
を調整することで、どの程度の差異を許容するかを設定できます。
df1 = pd.DataFrame({'a': [1, 2], 'b': [3.0, 4.0]})
df2 = pd.DataFrame({'a': [1, 2], 'b': [3.00001, 4.0]})
# 数値の比較
pd.testing.assert_frame_equal(df1, df2, rtol=1e-6)
このように、assert_frame_equal
関数は、DataFrameの比較が必要な場合に非常に便利なツールです。