比较两个熊猫数据框的差异

Ryflex:

我有一个脚本可以更新5-10列的数据,但是有时起始csv与结束csv相同,因此我不想写相同的csvfile,而是希望它不执行任何操作...

如何比较两个数据框以检查它们是否相同?

csvdata = pandas.read_csv('csvfile.csv')
csvdata_old = csvdata

# ... do stuff with csvdata dataframe

if csvdata_old != csvdata:
    csvdata.to_csv('csvfile.csv', index=False)

有任何想法吗?

安迪·海登(Andy Hayden):

您还需要注意创建DataFrame的副本,否则csvdata_old将使用csvdata更新(因为它指向同一对象):

csvdata_old = csvdata.copy()

要检查它们是否相等,可以在此答案中使用assert_frame_equal

from pandas.util.testing import assert_frame_equal
assert_frame_equal(csvdata, csvdata_old)

您可以将其包装在函数中,例如:

try:
    assert_frame_equal(csvdata, csvdata_old)
    return True
except:  # appeantly AssertionError doesn't catch all
    return False

有人在讨论更好的方法...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章