给出一个数据框,我需要创建一个新的列‘FLAG’,如果i
不在列‘id’中的任何列表中,则在第i
行中值为True,否则为False.
对于下面的示例,第1、3、5和6行的标志应为True. 我用lambda试了一下,但不能让它工作.
import pandas as pd
pos = pd.DataFrame(columns=['id', 'pred'])
pos.loc[1,'id'] = [4, 4]
pos.loc[2,'id'] = [2]
pos.loc[3,'id'] = [2, 4]
pos.loc[4,'id'] = [2]
pos.loc[5,'id'] = [2, 4]
pos.loc[6,'id'] = [4]
for i in range(0, len(pos)):
pos['flag'] = pos.apply(lambda x: int(i in x['id']), axis=True)
print(pos)
id pred flag
1 [4, 4] NaN False
2 [2] NaN False
3 [2, 4] NaN False
4 [2, 6] NaN False
5 [2, 6] NaN False
6 [6] NaN False