使用CSV编写器编写新字段

2024-09-23 04:29:58 发布

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

我正在尝试根据ID号在CSV a上写新行,如果ID号为。例如,如CSV B所示,如果ID=1,则该学生为女性,ID=2为男性

CSV A(有3列)

ID, Age, FirstName
1,   18,   Lia
2,   18,   Joe
2,   18,   John

CSV B(有2列)

ID, Gender
1,    Female
2,    Male

根据该信息,所需输出如下:

ID, Age, FirstName, Gender
1,   18,   Lia,     Female
2,   18,   Joe,     Male
2,   18,   John,    Male

如何使用Python csv编写器实现这一点


Tags: csv信息idagefirstnamejohngender学生
2条回答

我希望你做得很好,这个逻辑是基本的,但是正如你上面提到的,你是python新手,所以我已经为你的参考做了一些代码,附在下面

    import csv
    newColumn = ''
    genderDict = {}
    with open('CSVB.csv') as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',')
        line_count = 0

        for row in csv_reader: 
            if line_count == 0:
                newColumn = row[1]
                line_count = line_count+1
            else:
                genderDict[row[0]] = row[1]

    with open('CSVA.csv') as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',')
        line_count = 0
        for row in csv_reader:
            if line_count == 0:
                with open('OUTPUT.csv', mode='w') as employee_file:
                    output_writer = csv.writer(employee_file, delimiter=',',  quotechar='"', quoting=csv.QUOTE_MINIMAL)
                    row.append(newColumn)
                    output_writer.writerow(row)
                line_count += 1
            else:
                with open('OUTPUT.csv', mode='a') as employee_file:
                    output_writer = csv.writer(employee_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
                    row.append(genderDict[row[0]])
                    output_writer.writerow(row)
                line_count += 1

我不太明白这件事 但事情会是这样的

首先创建一个新的csv编写器对象 然后编写逻辑代码 将值附加到列表或元组 说 wobj.writerow(列表名称)

相关问题 更多 >