col1 Col2 status o/p value
0 10713-251-NODIV 10713-347-NODIV 10713-234-NODIV 10713-251-NODIV 10713-347-NODIV yes 10713-234-NODIV
1 10713-251-NODIV 10713-347-NODIV 10713-251-NODIV 10713-347-NODIV No None
可以有更多这样的例子,如何找到状态和o/p值?
如果没有,则需要使用循环。有几个选项:
python≥3.8
import re
df['o/p value'] = [m if (m:=re.sub(f'^{re.escape(b)}s*', '', a)) else float('nan')
for a,b in zip(df['col1'], df['Col2'])]
df['status'] = np.where(df['o/p value'].isna(), 'No', 'yes')
的其他版本:
import re
df['o/p value'] = [re.sub(f'^{re.escape(b)}s*', '', a) for a,b in zip(df['col1'], df['Col2'])]
df['o/p value'] = df['o/p value'].mask(df['o/p value'].str.strip().eq(''))
df['status'] = np.where(df['o/p value'].isna(), 'No', 'yes')
输出:col1 Col2 status o/p value
0 10713-251-NODIV 10713-347-NODIV 10713-234-NODIV 10713-251-NODIV 10713-347-NODIV yes 10713-234-NODIV
1 10713-251-NODIV 10713-347-NODIV 10713-251-NODIV 10713-347-NODIV No NaN