我想从第3列(它们的两个整数)中获取第4列的值,这就是我所拥有的。
with open('CLASSES.csv', 'rt')as f:
reader=csv.reader(f)
people=[]
for column in reader:
people.append(column[0:8])
difference = [x[3] for x in people] - [x[4] for x in people]
print(difference)
我收到错误 TypeError:不支持的操作数类型 - :'list'和'list'。我知道为什么我会得到错误,但我想不出办法解决它。
任何帮助都会很棒!
答案 0 :(得分:1)
就像@Peter Wood在评论中所说,你需要在一个列表理解中减去,而不是两个列表理解,因为这导致list - list
。
您还需要转换为数字。
difference = [int(x[3]) - int(x[4]) for x in people]
如果你想做这样的事情,最好使用numpy
甚至pandas
。
使用numpy及其genfromtxt
函数:
import numpy as np
people = np.genfromtxt('CLASSES.txt', delimiter=',', dtype=None)
difference = people[:, 3] - people[:, 4]
这里people
将是一个二维numpy数组,第一个索引遍历行,第二个列[:, 3]
占据第三列的每一行。
dtype=None
选项可让genfromtxt
自动决定每列的类型,默认为float
。