按照相同列合并CSV文件(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

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值