我试图打开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)
只需创建一个输出文件并将数据放入其中
你可以使用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'])