需求
现有两个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 版权协议,转载请附上原文出处链接和本声明。