我正在尝试打开csv文件(两个),并从这两个文件的两列中减去值。我将数据称为数组,然后使用map和operator.sub来获取此数据,但是我一直无法将数据作为打印或另一个csv输出。
我有两列形式的数据-两个文件中的a1,b1和a2,b2。我想找到减去b2(i)和b1(i),并制作一个新的csv文件,其区别为“ b”。数据值要复制到这里有点大。例如,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)
答案 0 :(得分: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'])