按照相同列合并CSV文件(python)

  • Post author:
  • Post category:python


按照相同列合并csv文件



需求

现有两个csv文件,分别如图所示

文件一:

在这里插入图片描述

文件二:

在这里插入图片描述

需要生成一个新的文件,在文件二的基础上增加一列 PTID,包含三列:RID,lable,PTID,需要按照文件一的RID-PTID关系进行增加。

需要注意,文件一有5000+行,文件二有400+行。



解决办法

如果按照手工进行依次修改,效率极低,需要一行一行查找。使用python可以很容易的完成这一任务:


这里使用pandas库进行csv文件的读取操作,使用csv库进行文件的写入操作。



代码

import csv
import pandas as pd

r = pd.read_csv("ROSTER.csv")    # 文件1
mci = pd.read_csv("MCI_RID_Mlabel.csv")  # 文件2 

f = open('res.csv','w',encoding='utf-8',newline='')  # 写入文件,注意newline='',没有会造成有空行
res = csv.writer(f)

res.writerow(["RID","label","PTID"])	# 写入表头

for i in range(0,mci.shape[0]):		# 依次遍历文件2
    d = mci.iloc[i]['RID']			# 获取当前行的 RID
    for j in range(0,r.shape[0]):	# 在文件 1 中依次查找 RID
        if r.iloc[j]['RID'] == d:	
            res.writerow([d,mci.iloc[i]['label'],r.iloc[j]['PTID']])	# 查找到,写入新文件中
            break	# 直接break,进入下一行查找

f.close()  # 关闭文件,千万别忘了



结果

只需几秒钟,新的文件就生成了:

在这里插入图片描述

使用python进行这种表格处理十分容易

写代码只要几分钟,虽然有两重循环,但是也只要几秒钟就运行完成。要是手工做,费事费力,正确率还不能保证。


人生苦短,我用python,hhh



版权声明:本文为Alan0_0原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。