0

在 Pandas 中,我想根据条件在数据框 df 中创建一个新列(C):如果 A 列包含 B 列,则“OK”,否则“Not OK”

我做了以下,但它不起作用。有什么建议么?

import pandas as pd

import numpy as np

df=pd.DataFrame({'A':['Mary, Tom, Steve','Mary, Kim','Petr, Steve','Petr, Mary'],
                 'B':['Kim','Kim','Kim','Mary']})

df['C']=np.where(df['A'].isin(df['B'].astype(str)), 'OK', 'Not OK')

我也做过

df['C']=np.where(df['A'].isin(df['B']), 'OK', 'Not OK')

在这两种情况下,输出都是相同的,并且是下面的df:

df 的输出

正确的输出应该是

df的正确输出

提前致谢

4

1 回答 1

0

不可以你使用lambda如下:

df['C'] = df.apply(lambda row: 'OK' if row['B'] in row['A'] else 'NO OK',axis =1)
于 2021-09-15T14:08:26.020 回答