【问题标题】:Python: Loop over each column/row accordingly & subtract value between two csv filesPython:相应地循环每一列/行并减去两个csv文件之间的值
【发布时间】:2018-05-07 07:31:33
【问题描述】:

我想用每列 (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 的第一个值。

有没有人可以给我任何想法来解决这个问题?

输入.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)

【问题讨论】:

  • 我认为你的外部循环一次推进一行,你希望它推进 y 并在每次“最后”迭代时重新开始
  • 感谢您的评论!问题解决了。

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


【解决方案1】:

我添加此内容只是为了将其标记为已回答/已解决。
有一个逻辑错误,我的评论:

推进 y 并在每次“最后”迭代时重新开始

解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2018-10-27
    相关资源
    最近更新 更多