Prefer showing diffs at the row level
parent
549ab0ebe6
commit
db645627ff
|
|
@ -1124,7 +1124,31 @@ def compare_tables(left, right):
|
||||||
|
|
||||||
table1, table2 = [left, right]
|
table1, table2 = [left, right]
|
||||||
name_table1, name_table2 = ["left", "right"]
|
name_table1, name_table2 = ["left", "right"]
|
||||||
if not diff_rows:
|
if not diff_cols:
|
||||||
|
# Same number of cols: compare rows since they're of the same length
|
||||||
|
if diff_rows > 0:
|
||||||
|
# Use the longest table as a reference
|
||||||
|
table1, table2 = table2, table1
|
||||||
|
name_table1, name_table2 = name_table2, name_table1
|
||||||
|
for index, lrow in table1.iterrows():
|
||||||
|
if index < table2.shape[0]:
|
||||||
|
srow = table2.loc[index, :]
|
||||||
|
if not lrow.equals(srow):
|
||||||
|
diff_df = pd.DataFrame()
|
||||||
|
diff_df = diff_df.append(lrow, ignore_index=True)
|
||||||
|
diff_df = diff_df.append(srow, ignore_index=True)
|
||||||
|
diff_df.insert(0, 'Table', [name_table1, name_table2])
|
||||||
|
print("Row {index} differs:".format(index=index))
|
||||||
|
print(diff_df.values)
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
print("Row {index} unique to {name_table1}: {lrow}".format(
|
||||||
|
index=index,
|
||||||
|
name_table1=name_table1,
|
||||||
|
lrow=lrow
|
||||||
|
))
|
||||||
|
break
|
||||||
|
elif not diff_rows:
|
||||||
# Same number of rows: compare columns since they're of the same length
|
# Same number of rows: compare columns since they're of the same length
|
||||||
if diff_cols > 0:
|
if diff_cols > 0:
|
||||||
# Use the longest table as a reference
|
# Use the longest table as a reference
|
||||||
|
|
@ -1150,29 +1174,5 @@ def compare_tables(left, right):
|
||||||
else:
|
else:
|
||||||
print("Column {i} unique to {name_table1}: {lcol}")
|
print("Column {i} unique to {name_table1}: {lcol}")
|
||||||
break
|
break
|
||||||
elif not diff_cols:
|
|
||||||
# Same number of cols: compare rows since they're of the same length
|
|
||||||
if diff_rows > 0:
|
|
||||||
# Use the longest table as a reference
|
|
||||||
table1, table2 = table2, table1
|
|
||||||
name_table1, name_table2 = name_table2, name_table1
|
|
||||||
for index, lrow in table1.iterrows():
|
|
||||||
if index < table2.shape[0]:
|
|
||||||
srow = table2.loc[index, :]
|
|
||||||
if not lrow.equals(srow):
|
|
||||||
diff_df = pd.DataFrame()
|
|
||||||
diff_df = diff_df.append(lrow, ignore_index=True)
|
|
||||||
diff_df = diff_df.append(srow, ignore_index=True)
|
|
||||||
diff_df.insert(0, 'Table', [name_table1, name_table2])
|
|
||||||
print("Row {index} differs:".format(index=index))
|
|
||||||
print(diff_df.values)
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
print("Row {index} unique to {name_table1}: {lrow}".format(
|
|
||||||
index=index,
|
|
||||||
name_table1=name_table1,
|
|
||||||
lrow=lrow
|
|
||||||
))
|
|
||||||
break
|
|
||||||
else:
|
else:
|
||||||
print("Tables have different shapes")
|
print("Tables have different shapes")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue