проблема вычитания списка python3 - список ошибок не вызывается - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь открыть CSV-файлы (два) и вычесть значения из двух столбцов из этих двух файлов. Я вызываю данные в массивы, а затем использую карту и 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)

1 Ответ

1 голос
/ 18 марта 2019

Просто создайте выходной файл и поместите данные внутрь

Вы можете использовать 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'])
...