用python将csv1的column1更新为csv2的column5

2024-10-06 14:27:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我今天一整天都在坚持这一点,但基本上我想要达到的是,我有两列的csv1,另一列有5列的csv2。你知道吗

CSV1型

id1,10
id2,20
id3,22
id4,59

CSV2型

id1,x,x,x,15
id11,x,x,x,32
id2,x,x,x,22
id3,x,x,x,42
id8,x,x,x,36
id4,x,x,x,47

现在我想从csv1读取,在csv1中读取id1,在csv2中找到相同的id1,然后用csv1中的值更新csv2。对csv1的每一行执行相同的操作,并基于这些值更新csv2。所以更新后的csv2

id1,x,x,x,10
id11,x,x,x,32
id2,x,x,x,20
id3,x,x,x,22
id8,x,x,x,36
id4,x,x,x,59

到目前为止,我有以下代码,但我不知道如何更新列回csv2。你知道吗

    with open(csv2, 'rU') as outCSV:
    outreader  = csv.reader(outCSV)
    outcol1 = []
    outcol5 = []

    for row in outreader:
        outcol1.append(row[0])
        outcol5.append(row[4])

    with open(inputcsv, 'rU') as inCSV:
    inreader = csv.reader(inCSV)

    for row in inreader:
        incol1 = row[0]
        incol2 = row[1]
        for i, name in enumerate(outcol1):  
            if incol1 == name:
                outcol5[i] = incol2

    print outcol5 #The updated column list.

那么现在,我如何写回这个列表,它是csv2的更新列。如果我使用write行,它会写入整个列,但不会更新列。感谢您的帮助。谢谢


Tags: inforwithopenrowid3id2id1