Python:相应地循环每个列/行&减去两个csv文件之间的值

时间:2018-05-07 07:31:34

标签: arrays python-3.x csv opencv3.0 subtraction

我想用每列中的每个行值(input.csv)减去每个值(test.csv)。例如,0.0010(test.csv) - 0.0023(input.csv)和0.0010(test.csv) - 0.0030(input.csv),然后是test.csv中的下一个数字,input.csv中的下一列,0.8236( test.csv) - 8.6932(input.csv)和0.8236(test.csv) - 16.881(input.csv)。但是,我只能使用input.csv中的第一列减去test.csv的第一个值。

有没有人能给我任何解决这个问题的想法?

input.csv -

  • 0.0023 8.6932 0.9976
  • 0.0030 16.881 0.9975

test.csv -

  • 0.0010
  • 0.8236
  • 0.1165
  • 0.1789
  • 0.1760
  • 1.4450

但是,我得到的是

  • ....,0.0010,0.0023
  • ....,0.0010,0.0030
  • ....,0.8236
  • ....,0.1165
  • ....,0.1789
  • ....,0.1760
  • ....,1.4450

我的预期输出是这样的

  • ....,0.0010,0.0023
  • ....,0.0010,0.0030
  • ....,0.8236,8.6932
  • ....,0.8236,16.881
  • ....,0.1165,0.9976
  • ....,0.1165,0.9975

由于

f1=open('input.csv')
csv_f1 = csv.reader(f1)
f2=open('test.csv')
csv_f2 = csv.reader(f2)

y=0
for row in csv_f2:
   test_data = np.array([float(row[y])])
   for row in csv_f1:
       all_data = np.array([float(row[x])])
       result = (test_data  -   all_data)
       print ("Expected",test_data,all_data)

1 个答案:

答案 0 :(得分:0)

我正在添加这个,以便将其标记为已接听/已解决 有一个逻辑错误,我的评论:

  

推进y并在每个" last"重新开始迭代

解决了这个问题。