我有一个函数,它在两个不同的列中查找某些字符串,如果满足函数条件,则返回原始行值:
def functionator(row):
if 'J44' in row['0_c']:
if 'J44' in row['A0']:
return row['0_c']
else:
return np.nan
elif 'I50' in row['0_c']:
if 'I50' in row['A0']:
return row['0_c']
else:
return np.nan
elif 'I51' in row['0_c']:
if ('I50' or 'I51') in row['A0']:
return row['0_c']
else:
return np.nan
elif 'F03X' in row['0_c']:
if ('F00' or 'F01' or 'F02') in row['A0']:
return row['0_c']
else:
return np.nan
elif 'N18' in row['0_c']:
if 'N18' in row['A0']:
return row['0_c']
else:
return np.nan
else:
return np.nan
df['0_c'] = df.apply(functionator, axis=1)
但是,我想在一系列列上应用这个函数,所以我不想只在row['0_c']
上检查它,而是要在row['i_c'] for i in range(n)
上检查它,并在row['Ai'] for i in range(m)
的范围内检查它
提前感谢您的帮助!你知道吗
这种代码效率非常低。您应该首先对其进行重组,以便对向量而不是标量进行操作:
然后就可以轻松地运行几次:
相关问题 更多 >
编程相关推荐