如何用Python为DataFrame添加Similar列:判断至少3个cosinesin值>0.5
实现方案
你可以通过Pandas的行级统计操作快速实现这个需求,核心思路是筛选出相似度列、统计每行符合条件的数量,再判断是否满足阈值:
方法一:通过列名关键词筛选(灵活适配列名)
import pandas as pd # 假设你的数据存储在DataFrame df中 # 筛选所有包含"cosinesin"的列,统计每行中大于0.5的数量,判断是否≥3 df['Similar'] = df.filter(like='cosinesin').gt(0.5).sum(axis=1) >= 3
方法二:指定固定列名(更精准)
如果确定列名是cosinesin1到cosinesin6,可以直接指定列列表,避免意外匹配其他列:
cos_cols = [f'cosinesin{i}' for i in range(1, 7)] df['Similar'] = df[cos_cols].gt(0.5).sum(axis=1) >= 3
代码解释
df.filter(like='cosinesin')/df[cos_cols]:获取所有需要判断的相似度列.gt(0.5):将每个值与0.5比较,生成布尔值矩阵(大于0.5为True,否则False).sum(axis=1):按行求和,True会被转换为1,False转换为0,得到每行符合条件的数量>=3:判断数量是否达到阈值,生成最终的Similar列(True/False)
内容的提问来源于stack exchange,提问作者Python-data
相关产品推荐
相关产品推荐

