python – 与isin的pandas函数

python – 与isin的pandas函数,第1张

概述我有一个这样的数据帧: 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, x, y] a 1 True[b, d, z] b 2 True[c, e, f] s 3 Falsenp.n 我有一个这样的数据帧:

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函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1194050.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存