при каком сценарии может произойти сбой pandas.equals, если все индексы/сравнение/столбцы равны?

#pandas

Вопрос:

Я нахожу это невероятно неприятным; У меня есть два кадра данных, df1 и df3, где:

  1. сравнение создает пустой фрейм данных
  2. индексы равны
  3. столбцы равны

и все же pd.equals() терпит неудачу. Я отредактировал фреймы данных по причинам конфиденциальности данных, но этого должно быть достаточно:

 print(len(df1)) print(len(df3)) print(df1.compare(df3)) print(df1.index.equals(df3.index)) print(df1.columns.equals(df3.columns)) assert df1.equals(df3)  

-gt;

 1151  1151  Empty DataFrame Columns: [] Index: []  True  True  Traceback (most recent call last):  File "/Users/tommycarpenter/Development/test.py", line 34, in lt;modulegt;  assert df1.equals(df3) AssertionError  

как мы видим: длины совпадают, сравнение с использованием df.compare создает пустой фрейм данных, индексы равны, столбцы равны; все же df.equals рвота — каковы возможные причины этого?

Моя единственная гипотеза заключается в том, что pd.compare обрабатывает NaN == NaN , но не равен?