如何用一个主键将不同的CSV文件合并成一个新的CSV

2024-05-13 06:36:09 发布

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

我有两个巨大的CSV文件,希望他们加入一个新的CSV文件与使用python熊猫,主键是id\u学生,这是可以的,我成功地将不同的列连接在一起,但当我输出到一个新的CSV文件,整个数据束将只存在到第一行,不同的列,例如,第1行第1列将是id\u student,如下所示:

0  12345
1  12344

第1行和第1列将是最终结果,格式如下:

0  Pass
1  Pass

但我的预期结果是:

0  12345 Pass
1  12344 Pass

有什么方法可以修改输出格式吗?你知道吗

def plotlyGraph(self):

    df = pandas.read_csv('studentAssessment.csv')
    dc = pandas.read_csv('studentInfo.csv')
    res = pandas.merge(df,dc, on=['id_student'], how='outer')
    a=res['id_student']
    b=res['final_result']
    c=res['score']
    d=res['id_assessment']
    e=res['region']

    with open("new.csv", "w", newline="") as csvfile:
        writer = csv.writer(csvfile)
        writer.writerow([a,b,c,d,e])


Tags: 文件csvcsvfileidpandasdfread格式
1条回答
网友
1楼 · 发布于 2024-05-13 06:36:09

我假设你的df有两列:id_studentid_assessment,而dc有两列:id_studentfinal_result。试试这个:

df = pandas.read_csv('studentAssessment.csv')
dc = pandas.read_csv('studentInfo.csv')

res = df.merge(dc, on=['id_student'], how='outer')
print(res)

输出

   id_student id_assessment final_result
0           0       12345          pass
1           1       12344          pass

要存储在csv文件中:

res.to_csv("new.csv", index=False)

相关问题 更多 >