python根据另一个csv文件更新csv文件的列值

Hua*_*Ren 1 python

例如考虑文件a.csv

1  23 'better' 0
2  21 'bad'    0
3  34 'good'   0
Run Code Online (Sandbox Code Playgroud)

b.csv

23 2
34 5
Run Code Online (Sandbox Code Playgroud)

我们可以得到结果:

1  23 'better' 2
2  21 'bad'    0
3  34 'good'   5
Run Code Online (Sandbox Code Playgroud)

Mar*_*rek 5

感谢您使问题更清楚。此代码不会就地修改文件 A,而是使用输出文件 fileC。

import csv #imports module csv

filea = "fileA.csv"
fileb = "fileB.csv"
output = "fileC.csv"

delim = ";" #set your own delimiter

source1 = csv.reader(open(filea,"r"),delimiter=delim)
source2 = csv.reader(open(fileb,"r"),delimiter=delim)
#open csv readers

source2_dict = {}

# prepare changes from file B
for row in source2:
    source2_dict[row[0]] = row[1]

# write new changed rows
with open(output, "w") as fout:
    csvwriter = csv.writer(fout, delimiter=delim)
    for row in source1:
        # needs to check whether there are any changes prepared
        if row[1] in source2_dict:
            # change the item
            row[3] = source2_dict[row[1]]
        csvwriter.writerow(row)
Run Code Online (Sandbox Code Playgroud)

我希望我能很好地理解你的意图。

仅对步骤进行简短说明:

  • 首先指定源文件和输出文件的路径,并指定分隔符。
  • 然后使用 csv 模块加载 CSV 阅读器。
  • 您从源文件 B 中读取所有更改并将其存储在
    字典中。
  • 然后迭代文件 A,必要时修改该行,然后将其保存到输出文件。