Python阅读列中的csv文件?
问题描述:
是否可以在列中读取csv
文件而不是python中的行?Python阅读列中的csv文件?
例如如果我有一个CSV文件是这样的:
a b c 1 0 1 1 4 1
一个人怎么会得到[a,1,1],[b,0,4],[c,1,1]
或者各种各样的东西的清单?
答
您正在寻找转置功能。为了解决你的问题,
- 首先读取CSV作为行,在列表中 前创建行明智的元组:使用任何目前在Transpose a matrix in Python的解决方案
[(a,b,c),(1,0,1),(1,4,1)..]
- 移调上面所列内容。
转后,你的数据会看起来像[(a,1,1),(b,0,4)..]
答
您可以使用这样的事情:
# Open file and read lines
input_file = open('filename.csv')
lines = input_file.readlines()
# Create list with n sublists (n - number of columns)
l = [[] for _ in lines[0].split('\t')]
# Fill in sublists
for line in lines:
for i, column in enumerate(line.split('\t')):
l[i].append(column)
答
使用zip(*reader)
。
some.csv
a b c
1 0 1
1 4 1
scrip.py
import csv
with open('some.csv', 'rb') as f:
reader = csv.reader(f, delimiter=' ')
print zip(*reader)
输出:
[('a', '1', '1'), ('b', '0', '4'), ('c', '1', '1')]
http://stackoverflow.com/questions/16503560/read-specific-columns- from-csv-file-with-python-csv这会回答你的问题 – WannaBeCoder