我有一个脚本可以更新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)
有任何想法吗?
您还需要注意创建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] 删除。
我来说两句