Python 更改脚本以将值写入特定列

Python 更改脚本以将值写入特定列,python,csv,python-2.7,append,rank,Python,Csv,Python 2.7,Append,Rank,我编辑了下面的脚本片段,为我的数据集实现了一个排名函数。现在,当我让它作为循环脚本的一部分运行时,它会一次又一次地将数据附加到csv的结束列。换句话说,csv只是吸收了列 我不知道如何做到这一点,但我需要代码来始终将数据输入第17列。当前,在第一次运行脚本时,csv包含16列,但在第二次运行时,csv包含25列,并且需要在第二次运行时覆盖第17列,而不仅仅是将结果附加到第26行 使用的代码: 任何想法、帮助或建议都将不胜感激。我可以提供更多的细节和一个例子,如果需要的话,我目前正在努力保持简洁。

我编辑了下面的脚本片段,为我的数据集实现了一个排名函数。现在,当我让它作为循环脚本的一部分运行时,它会一次又一次地将数据附加到csv的结束列。换句话说,csv只是吸收了列

我不知道如何做到这一点,但我需要代码来始终将数据输入第17列。当前,在第一次运行脚本时,csv包含16列,但在第二次运行时,csv包含25列,并且需要在第二次运行时覆盖第17列,而不仅仅是将结果附加到第26行

使用的代码:
任何想法、帮助或建议都将不胜感激。我可以提供更多的细节和一个例子,如果需要的话,我目前正在努力保持简洁。非常感谢,我无法对你的问题发表评论,这就是我为什么在回复中发表文章的原因,请添加更多信息和一些示例。以及为什么要使用open函数使用csv.Dictreader()
它以dict的形式给出每一列的数据,并且易于处理

确实提交了错误的代码

import csv
from itertools import count
from collections import defaultdict
from functools import partial

counts = defaultdict(partial(count, 1))  # create a new count starting at 1

# Read in the data
with open('../MODIFIED.csv', 'rb') as f:
    # if you have a header on the file
    # header = f.readline().strip().split(',')
    data = [line.strip().split(',') for line in f]
    
with open("../MODIFIED.csv", 'wb') as outfile:
    writer = csv.writer(outfile)
    for counter, row in enumerate(data):
        counter += 1
        if counter >=2:
            row[9] = next(counts[row[2]])  # get the next count value
        writer.writerow(row)