python-3.x - 有没有一种方法可以将列表匹配到其他列表中?
问题描述
我有一个像这样的数据框:
target ; terms
Sport ; Football,Handball, Tennis
Mécanique ; voiture, moto, tracteur, bus
Technologies; ordinateur, téléphone,tablette, radio, écouteur
在程序的输入中,我有:
list_terms= ['Football','Handball','ordinateur','tablette','Tennis']
预期输出:
targets : Sport,Technologies
解决方案
您可以apply()
在行上使用并检查terms
列在条目列表中是否有任何值。
def check(row):
targets = [term for term in row['terms'].split(',') if term in entry_list]
if len(targets) > 0:
return row['target'] + ' ({:.2f})'.format(len(targets)/len(entry_list))
else:
return np.nan
print(df.apply(check, axis=1).dropna().tolist())
"""
['Sport (0.50)', 'Technologies (0.33)']
"""
如果您不想要目标后的概率,您可以使用
def check(row):
targets = [term for term in row['terms'].split(',') if term in entry_list]
return len(targets) > 0
print(df[df.apply(check, axis=1)]['target'].tolist())
"""
['Sport', 'Technologies']
"""
推荐阅读
- scala - 由于区分大小写,在 Spark 中加载带有模式的 JSON 文件正在加载空数据
- python - Plotly subplot 不喜欢循环条形图?
- c++ - 为什么四舍五入时 0.5 变成 1.0?不应该是0.5吗?
- python - 你用之前在 python 中使用过的名称创建了一个对象会发生什么?
- sql - 将 DATEADD 添加到 SUBSTRING OF TEXT 以获取未来的日期
- php - http.post 不工作/在 Flutter 中发送空值
- python - 为什么当键确实在列表中时,“mydict 中的键为真”返回 false?
- c++ - 关于打印 STL 容器以进行认可测试的公约
- javascript - vue-chart.js / vuex:当 vuex 状态改变时图表不更新
- postgresql - PostgresSQL 函数需要很长时间