我有一个脚本更新 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()
要检查它们是否相等,您可以use assert_frame_equal as in this answer :
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
讨论了更好的方法...
关于python - 比较两个 Pandas 数据框的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38057870/