如何发现多列值是否在其他列值中,如果不是,则存储在其他列中


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

最新更新