python3 list subtract issue - 错误列表不可调用

问题描述 投票:0回答:1

我试图打开csv文件(两个)并从这两个文件中的两列中减去值。我将数据调用到数组中,然后使用map和operator.sub来获取此数据,但我仍然坚持将该数据输出为print或另一个csv。

我有两列中的数据 - a1,b1和a2,b2在两个文件中。我想找到减去b2(i)和b1(i),并创建一个差异为“b”的新csv文件。这里要复制的数据值有点大。例如,1,10,/ n 2,15 / n 3 20等和1,20 / n 2,20 / n 3,30。我应该得到5,5,10作为输出列表或作为数组或甚至作为输出文件。

我的问题 - 我没有得到任何输出,但错误说“列表”不可调用。我搜索了很多关于内置函数问题的细节,但仍然不知道我在哪里弄乱。

import csv
try:
    from itertools import imap
except ImportError:
    # Python 3...
    imap=map
from operator import sub

a = []
b = []
c = []

with open('1.csv') as csvDataFile:
    csvReader = csv.reader(csvDataFile)
    for row in csvReader:
        a.append(row[1])

with open('2.csv') as csvDataFile:
    csvReader = csv.reader(csvDataFile)
    for row in csvReader:
        b.append(row[1])

c = list(imap(sub, a, b))

print(c)
python list subtraction
1个回答
1
投票

只需创建一个输出文件并将数据放入其中

你可以使用pandas或只是当前的csv lib

with open('my_output.csv', mode='w') as output_file:
    writer = csv.writer(output_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

    writer.writerow(['John Smith', 'Accounting', 'November'])
© www.soinside.com 2019 - 2024. All rights reserved.