我有一个更新 5-10 列数据的脚本,但有时起始 csv 将与结束 csv 相同,因此我不想编写相同的 csv 文件,而是希望它什么都不做...
如何比较两个数据帧以检查它们是否相同?
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)
有任何想法吗?
您还需要小心创建 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
大家讨论了更好的方法......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)