Я сталкиваюсь с проблемой сравнения, это мой код:
import pandas as pd
from collections import OrderedDict
from pandas.util.testing import assert_frame_equal
df1 = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd']),
'three' : pd.Series([1., 2., 3., 4., 5.], index=['a', 'b', 'c', 'd','e'])}
df2 = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd']),
'three' : pd.Series([1., 2., 3., 4., 5.], index=['a', 'b', 'c', 'd','e'])}
od = OrderedDict()
od['a'] = pd.DataFrame(df1)
od['b'] = pd.DataFrame(df1)
od['c'] = pd.DataFrame(df1)
od['d'] = pd.DataFrame(df1)
od2 = OrderedDict()
od2['a'] = pd.DataFrame(df2)
od2['b'] = pd.DataFrame(df2)
od2['c'] = pd.DataFrame(df2)
od2['d'] = pd.DataFrame(df2)
test = assert_frame_equal(od, od2)
print(test)
У меня есть 2 OrderedDict, сделанный из панд DataFrames, и я хотел бы проанализировать, равны ли отдельные элементы внутри DataFrames.
Я обнаружил функцию assert_frame_equal, которая отлично работает, когда дело касается сравнения 2-х DataFrames, но выдает эту ошибку с OrderedDict:
AssertionError: DataFrame Ожидаемый тип класса 'pandas.core.frame.DataFrame ', вместо этого найден класс' collection.OrderedDict '
Есть ли какое-либо решение или способ обойти это?Учтите, что я обязательно начинаю с OrderedDict и, к сожалению, я не могу это изменить.
Заранее большое спасибо за любую помощь / подсказку по этому вопросу.