熊猫在比较相同数据框时只能比较标记相同的DataFrame对象。

时间:2018-12-07 09:17:31

标签: python-3.x pandas sorting compare

我正在尝试比较Python中的两个数据框。 数据框具有完全相同的标签,但是里面的数据是混合的,因此我需要按一个关键列对其进行排序。 使用“ sort_values”功能后出现问题。

此代码有效,但是由于数据以不同的方式排序,所以我得到了FALSE:

l1 = l1.reindex(sorted(change.columns), axis=1)
l2 = l2.reindex(sorted(change.columns), axis=1)
# l1.sort_values("PPID", inplace=True, axis=0, ascending=True)
# l2.sort_values("PPID", inplace=True, axis=0, ascending=True)
print(l1 == l2)

我认为这段代码应该可以正常工作,数据是按“ PPID”排序的,标签看起来仍然一样,但是我遇到了错误:

l1 = l1.reindex(sorted(change.columns), axis=1)
l2 = l2.reindex(sorted(change.columns), axis=1)
l1.sort_values("PPID", inplace=True, axis=0, ascending=True)
l2.sort_values("PPID", inplace=True, axis=0, ascending=True)
print(l1 == l2)

错误消息:

  

ValueError:只能比较标记相同的DataFrame对象

是什么导致此错误?是否有任何其他方式可以按列排序或比较两个数据框?

1 个答案:

答案 0 :(得分:0)

我虽然数据帧的标签相同,但是事实并非如此。 .sort_values对偶数行索引进行排序,因此一个数据帧具有1,2,3,4,5,6等,另一个数据帧具有6,3,2,4,5,1 ...更改索引后,我能够比较df。