使用Python在csv文件中添加新列

nlejzf6q  于 2023-07-31  发布在  Python
关注(0)|答案(1)|浏览(109)

我创建了这个Python脚本,它可以在两个csv文件之间进行右连接。简而言之,它创建了一个新的csv,其中包含:
1.两个文件中都存在的行
1.只存在于第二个csv中的行(应该是最新的一个)
然后,它应该添加一个名为“present”的新列,在第一种情况下,该列的值应为0,在第二种情况下,该列的值应为1

import csv

def compare_csv(csv1, csv2, output_file):
    rows_csv1 = []
    rows_csv2 = []
    result_rows = []
    unique_rows = []
    common_rows = []

    # Lettura del file CSV meno recente
    with open(csv1, 'r') as file1:
        csv_reader1 = csv.reader(file1)
        for row in csv_reader1:
            rows_csv1.append(row )

    # Lettura del file CSV più recente
    with open(csv2, 'r') as file2:
        csv_reader2 = csv.reader(file2)
        for row in csv_reader2:
            rows_csv2.append(row)

    # Confronto delle righe
    for row2 in rows_csv2:
        if row2 not in rows_csv1:
            result_rows.append(row2 + ["1"])
        elif row2 in rows_csv2 and row2 in rows_csv1:
            result_rows.append(row2 + ["0"])
        else:
            print(f"la riga {row} non è presente")


    # Scrittura delle righe nel file di output
    with open(output_file, 'w', newline='') as result_file:
        csv_writer = csv.writer(result_file)
        csv_writer.writerows(result_rows)

if __name__ == "__main__":
    csv1 = input("Inserisci il percorso del file CSV meno recente: ")
    csv2 = input("Inserisci il percorso del file CSV più recente: ")
    output_file = "result.csv"

    compare_csv(csv1, csv2, output_file)
    print("Operazione completata. Il file 'result.csv' è stato creato.")

字符串
这里的问题是,脚本添加了名称为“0.1”的新列,并添加了“0.1”作为该列的值
有什么帮助吗?

3hvapo4f

3hvapo4f1#

通过你的代码,它显示你只是创建列而不是行
您可以通过以下方式创建新行

writer.writerow([index,value])

字符串

相关问题