三个条件至少满足两个的 pandas

背景
  • 女孩子相亲 提出三个条件 只要男孩复合两个以上才能见面

数据

张三 :'帅气', '阳光', '活泼', '酷炫
李四 :'帅气', '阳光', '活泼'
王五 :'帅气', '阳光', '猥琐', '富有'

标签

  • 标签 帅气', '阳光', '活泼'
  • 只要有两个符合女孩的条件就推荐出来

代码实现

import pandas as pd

if __name__ == '__main__':
    data = {
        'name': ['张三', '李四', '王五'],
        'tag': [
            ['帅气', '阳光', '活泼', '酷炫'],
            ['帅气', '阳光', '活泼', ],
            ['帅气', '阳光', '猥琐', '富有']
        ]
    }
    df = pd.DataFrame(data)

    dest = {'帅气', '阳光', '活泼'}

    df['X'] = df.tag.apply(
        lambda n, extra: True if len(set(n).intersection(extra)) >= 3 else False,
        args=(dest,))

    tags = df.loc[df['X'] == True]

    tags = tags.drop(axis=1, columns=['X'])

    tags = tags.apply(lambda x: tuple(x), axis=1).values.tolist()

    print(tags)

posted @ 2022-12-30 14:37  vx_guanchaoguo0  阅读(35)  评论(0编辑  收藏  举报