以下python代码给了我一个AssertionError:
p = DataFrame.groupby(column).apply(len).sort_values(ascending=False)
q = DataFrame[column].value_counts()
pd.testing.assert_series_equal(p, q)
我认为这些函数做同样的事情,实际上,当查看前几行时,所得的序列是相似的,但根据断言错误,它们仅相差59%。
答案 0 :(得分:1)
两者几乎相似,只需要相同的索引名和相同的系列名-将所有值都设置为默认None
:
DataFrame = pd.DataFrame({'a': [1,5,4,2,1,2,1,2,1,4,2,3,2,1]})
column = 'a'
p = DataFrame.groupby(column).apply(len).sort_values(ascending=False)
q = DataFrame[column].value_counts()
print (p.name)
None
print (q.name)
a
print (p.index.name)
a
print (q.index.name)
None
pd.testing.assert_series_equal(p.rename_axis(None), q.rename(None))