我有两个都包含数字的数据框。它们都具有相同的大小10x350(十列和350行),我想将它们进行比较并“做一些逻辑”
以下是一些摘录作为说明:
Dataframe 1: Dataframe 2:
A B C A B C
47.7 20.2 12.1 90.7 73.8 216.7
47.2 20 11.9 114.9 68 155.6
46.4 19.6 11.7 110.8 67.8 160.3
我想比较数据帧,如果数据帧2中的值较高,则存储差异。
(在此示例中,数据框2中的所有值都较高)
最后,所有与列的差异都应加起来
在这种情况下,差异之和为:
Sum_A = 175.1
Sum_B = 149.8
Sum_C = 496.9
我认为使用:
for index, row in df1.iterrows():
可能是可能的。但是我无法将两个数据框进行比较
答案 0 :(得分:0)
您可以这样做:
df2.sub(df1).clip(lower=0).sum()
输出:
A 175.1
B 149.8
C 496.9
dtype: float64
答案 1 :(得分:0)
def VerifyTable(context,actual_table, expected_table):
n = []
for actual_tablecolumns in actual_table.columns:
n.append(actual_tablecolumns)
print (n)
m = []
for expected_tablecolumns in expected_table.columns:
m.append(expected_tablecolumns)
print (m)
if n == m:
for actual_tablevalues in actual_table.values:
nn.append(actual_tablevalues)
print (nn)
mm = []
for expected_tablevalues in expected_table.values:
mm.append(expected_tablevalues)
if nn == mm:
return True
return False
另一个代码
def VerifyTable(context, actual_table, expected_table):
#print("row count in actual table: " + str(len(actual_table.values)))
currentRowIndex = -1
currentColIndex = -1
for row in actual_table.values:
currentRowIndex = currentRowIndex + 1
currentColIndex = -1 #reset column index
for cell_by_column in row:
currentColIndex = currentColIndex + 1
assert cell_by_column == expected_table.values[currentRowIndex][currentColIndex], "Mismatch of corresponding cells comparing actual and expected: " + cell_by_column + " != " + expected_table.values[currentRowIndex][currentColIndex]
#TODO: Write code to compare/verify column headers as well!