【发布时间】:2018-11-15 16:22:35
【问题描述】:
我遇到了一个比较问题,这是我的代码:
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 个由 pandas DataFrames 组成的 OrderedDict,我想分析 DataFrames 中的单个元素是否相等。
我发现函数 assert_frame_equal 在比较 2 个 DataFrame 时效果很好,但使用 OrderedDict 时会出现此错误:
AssertionError: DataFrame 预期类型类 'pandas.core.frame.DataFrame',找到类 'collections.OrderedDict' 代替
是否有任何解决方案或解决方法?考虑到我必须从 OrderedDict 开始,不幸的是我无法改变它。
在此先感谢您对此问题的任何帮助/提示。
【问题讨论】:
标签: python-3.x pandas dictionary dataframe compare