【发布时间】:2016-01-20 23:36:18
【问题描述】:
我一直在尝试解决一个基本问题(并且一直是 Python 2.7,但无处可寻。我有一个带有列标题的 csv 文件,例如:
a,b,c
1,2,3
1,2,3
1,2,3
这被保存为 test1.csv
我已经设法获取每一列并将它们传递到一个数组中,因此每个列标题都位于开头,然后是数据。然后如何将其写回具有相同顺序和结构的新 csv 文件?
import csv
f = open('test1.csv','rb')
reader = csv.reader(f)
headers = reader.next()
print headers
column = {}
for h in headers:
column[h] = []
for row in reader:
for h,v in zip(headers,row):
column[h].append(v)
【问题讨论】:
-
我猜
pandas是不可能的? -
这怎么是没有逗号的csv?
-
1/ 编写标题 2/ 使用 SortedDict 保持列的顺序 3/ 旋转您的字典:
zip(*d.values())(为您提供每行的列表) -
或者如果你不喜欢 SortedDict,
zip(*map(lambda x: x[1], sorted(d.items(), key=lambda x: header.index(x[0]))))(但我更喜欢 SortedDict)
标签: python arrays csv file-writing