我有一个临床数据集,我必须更换
此外,我需要指定年龄
这是我的密码。你知道吗
import csv
import pandas as pd
with open('combined_file', 'rb') as f,open('newFile', 'wb') as out:
reader = csv.reader(f)
writer = csv.writer(out)
for row in reader:
#print "AABB"
if 'DECEASED' in row[1]:
if row[10]>365:
row[1]=1
writer.writerow(row)
elif row[10]<365:
row[1]=0
writer.writerow(row)
if 'LIVING' in row[1]:
if row[11]>365:
row[1]=1
writer.writerow(row)
样本输入
sample id , status , age ,gender ,date ,days_to_last_followup
0 , Deceased , 42 , M , 326 , 149
1 , Deceased , 56 , F , 500 , 30
2 , living , 43 ,M , 25 , 150
样本输出
sample id , status , age ,gender,date ,days_to_last_followup
0 , 0 , 1 , M ,326 , 149
1 , 1 , 2 , F ,500 , 30
2 , 0 , 1 ,M , 25 , 150
您的代码是一个很好的起点—代码没有涵盖的一些内容:
row[1]
时会发生什么?您的代码将写两行。要解决此问题,请将if 'LIVING'
设置为elif 'LIVING'
。你知道吗else
案例来捕捉当DECEASED
或LIVING
都不在row[1]
时发生的情况。你知道吗基于这篇文章,我不确定你的问题是什么。无论哪种方式,如果“已故”和“活着”都在同一行中,逻辑结构都会有问题[1]。我建议您创建一些测试用例来查找坏数据,因为ETL过程通常必须处理意外的数据格式/字段。你知道吗
我也不知道你为什么要导入熊猫图书馆。在你发布的代码里,你好像没有把它叫做什么。你知道吗
相关问题 更多 >
编程相关推荐