python - python3列表减法问题 - 错误列表不可调用
问题描述
我正在尝试打开 csv 文件(两个)并从这两个文件中的两列中减去值。我将数据调用到数组中,然后使用 map 和 operator.sub 来获取它,但是我一直坚持将该数据输出为打印或另一个 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
库
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'])
推荐阅读
- perl - Perl:扫描 URI 的正文文本并使用 URI::Find::Simple 删除
- python - 使用 loc 和方括号比较元素明智地访问 pandas 列
- c# - 手电筒消失了,但没有再出现
- view - QLDB 中的视图(投影)
- php - 如何在 Laravel 中为电报机器人保存他的消息之间的用户输入
- c# - 如何将一个范围内的所有整数相加?
- python - Win7+上使用Python关闭Chrome浏览器
- loops - 是否可以在 Crystal 中进行单行循环?
- python - 在我的第一个简单的 Python 猜数字游戏中添加“提示”
- dart - 将 dart 升级到 2.7 时出现 webdev 错误