aa bb cc[a,x,y] a 1[b,d,z] b 2[c,e,f] s 3np.nan d 4
我正在尝试创建一个这样的新列:
aa bb cc dd[a,y] a 1 True[b,z] b 2 True[c,f] s 3 Falsenp.nan d 4 False
我目前的解决方案是:
def some_function(row): if row['bb].isin(row['aa'])==True: return True return Falsedf['dd'] = df.apply(lambda row: some_function(row),axis=1)
但这会抛出一个错误(“’str’对象没有属性’isin’”,’发生在索引0′)
我怀疑,因为我在检查isin时遗漏了一些东西.
基本上,我需要检查bb的str值是否在列aa中,每个单元格中都有一个列表.
关于如何做到这一点的任何想法?
解决方法 您需要参数列表中的检查成员身份:df['dd'] = df.apply(lambda x: x.bb in x.aa,axis=1)print (df) aa bb cc dd0 [a,y] a 1 True1 [b,z] b 2 True2 [c,f] s 3 False
编辑:
df['dd'] = df.apply(lambda x: (x.bb in x.aa) and (x.cc == 1),axis=1) print (df) aa bb cc dd0 [a,z] b 2 False2 [c,f] s 3 False
要么:
df['dd'] = df.apply(lambda x: x.bb in x.aa,axis=1) & (df['cc'] == 1)print (df) aa bb cc dd0 [a,f] s 3 False
编辑:
df['dd'] = df.apply(lambda x: x.bb in x.aa if type(x.aa) == List else False,f] s 3 False4 NaN d 4 False总结
以上是内存溢出为你收集整理的python – 与isin的pandas函数全部内容,希望文章能够帮你解决python – 与isin的pandas函数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)