编辑csv中的一段数据

时间:2016-05-28 17:11:17

标签: python csv

我有一个看起来像这样的csv文件

34512340,1
12395675,30
56756777,30
90673412,45
12568673,25
22593672,25

我希望能够在python之后编辑数据,然后保存csv。

有人知道我怎么能这样做吗? 下面的这段代码将写一个新行,但不能编辑:

f = open("stockcontrol","a")
f.write(code)

2 个答案:

答案 0 :(得分:1)

这是一个示例,它向第二列添加1:

import csv

with open('data.csv') as infile, open('output.csv', 'wb') as outfile:
    reader = csv.reader(infile)
    writer = csv.writer(outfile)
    for row in reader:
        # Transform the second column, which is row[1]
        row[1] = int(row[1]) + 1
        writer.writerow(row)

注释

  • csv模块正确解析CSV文件 - 强烈推荐
  • 默认情况下,每行都会被解析为文本,这就是我转换为整数的原因:int(row[1])

更新

如果您真的想要编辑文件"就位",请使用fileinput模块:

import fileinput

for line in fileinput.input('data.csv', inplace=True):
    fields = line.strip().split(',')
    fields[1] = str(int(fields[1]) + 1)  # "Update" second column
    line = ','.join(fields)
    print line  # Write the line back to the file, in place

答案 1 :(得分:0)

您可以使用python pandas编辑所需的列,例如将列号增加n

import pandas
data_df = pandas.read_csv('input.csv')
data_df = data_df['column2'].apply(lambda x: x+n)
print data_df

1添加n替换1