PERF: assert_frame_equal / assert_series_equal by lukemanley · Pull Request #55971 · pandas-dev/pandas (original) (raw)

I think so, but after reviewing again I've reverted this line in favor of a lower level change to _array_equivalent_object.

This has the benefit of improving performance for more cases, e.g. not just the index values but in this case the series values:

import pandas as pd

N = 100_000

values = pd._testing.makeStringIndex(N).values

ser1 = pd.Series(values.copy())
ser2 = pd.Series(values.copy())

%timeit pd.testing.assert_series_equal(ser1, ser2)

1.92 s ± 56.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
22.3 ms ± 4.18 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)