【发布时间】:2018-10-09 05:04:35
【问题描述】:
这是我的数据框
Tipo Número renal dialisis
CC 260037 NULL NULL
CC 260037 NULL AAB
CC 165182 NULL NULL
CC 165182 NULL CCDE
CC 260039 NULL NULL
CC 49740 XYZ NULL
CC 260041 NULL NULL
CC 259653 NULL NULL
对于 DataFrame 中的每一行,我想确定 renal 和 dialisis 中的值是否为 NULL。那些不是NULL 的行将是1 在survived 列表中;如果它们都是NULL,那么它们将是0。
我的代码是:
survival = pd.read_table('Sophia_Personalizado bien.txt',encoding='utf-16')
survived = []
numero_paciente = []
lista_pacienytes= survival['Número'].values.tolist()
lista_pacienytes= sorted(set(lista_pacienytes))
for e in lista_pacienytes:
survival_i = survival.loc[survival['Número']==e]
renal = set(survival_i['renal'].values.tolist())
dialisis = set(survival_i["dialisis"].values.tolist())
print('dialisis',dialisis)
print('renal',renal)
if renal == 'nan' or dialisis == 'nan':
survived.append(0)
numero_paciente.append(e)
else:
survived.append(1)
numero_paciente.append(e)
e = pd.DataFrame({'numero': numero_paciente,
'survival': survived})
令人惊讶的是,所有行都等于1,但正如我们在 DataFrame 中看到的那样,这不是真的。另外,
print('dialisis',dialisis)
print('renal',renal)
是:
dialisis {nan, nan}
renal {nan}
应该是NAN,因为我使用set()。
我错过了什么?谢谢
【问题讨论】:
标签: python-3.x pandas dataframe