【发布时间】:2015-12-21 22:12:46
【问题描述】:
我正在使用这个脚本来获取一个大的 csv 文件,并在第一列中用唯一值分隔它,然后保存新文件。我还想在每个文件的末尾添加 3 列,其中包含基于前列的计算。这些列也将具有标题。我目前的代码如下
import csv, itertools as it, operator as op
csv_contents = []
with open('Nov15.csv', 'rb') as fin:
file_reader = csv.DictReader(fin) # default delimiter is comma
print file_reader
fieldnames = file_reader.fieldnames # save for writing
for line in file_reader: # read in all of your data
csv_contents.append(line) # gather data into a list (of dicts)
# input to itertools.groupby must be sorted by the grouping value
sorted_csv_contents = sorted(csv_contents, key=op.itemgetter('Object'))
for groupkey, groupdata in it.groupby(sorted_csv_contents, key=op.itemgetter('Object')):
with open('slice_{:s}.csv'.format(groupkey), 'wb') as gips:
file_writer = csv.DictWriter(gips, fieldnames=fieldnames)
file_writer.writeheader()
file_writer.writerows(groupdata)
【问题讨论】:
-
这段代码在哪里尝试添加 3 列,具体是如何不工作的?
-
我没有添加代码来添加 3 列,因为我不知道怎么做。通过搜索,有很多关于如何添加行而不是列的解释。我所能做的就是通过独特的文本拼接原始文件
标签: python csv export-to-csv