太久沒更新,營養要跟不上了。
別寫df1 == df2(這是逐個元素相比較)。
要寫assert_frame_equal。不僅能比較兩個df是否相等,還能告訴你哪裏不一樣。
assert_frame_equal是比較兩個df是否完全一模一樣。index都要一樣!
import pandas as pd
import numpy as np
from pandas.testing import assert_frame_equal
df1 = pd.DataFrame(np.arange(12).reshape(3, -1))
df2 = pd.DataFrame(np.arange(12).reshape(3, -1))
df1 == df2
assert_frame_equal(df1, df2)
沒有問題。
換一個df3,2行1列的元素和df1不一樣/
報錯啦。
還會比較index
如果要忽略index的比較,是不是可以考慮新建2個df,index自動一樣了…
相關API:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.testing.assert_frame_equal.html
pandas.testing.
assert_frame_equal
(left, right, check_dtype=True, check_index_type='equiv', check_column_type='equiv', check_frame_type=True, check_less_precise=False, check_names=True, by_blocks=False, check_exact=False, check_datetimelike_compat=False, check_categorical=True, check_like=False, obj='DataFrame')