可以使用python + pandas来关联字符串列表吗?

时间:2019-02-20 06:29:35

标签: python

列表中有很多字符串数据,即

['red','tall','cat']
['dog','car','tall','green']

等-其中约10000

列表可以包含1到〜70个项目。这些项目来自大约120种可能性的清单。

大熊猫可以对此进行关联吗,这样我就可以看到red与哪些项之间的相关性最强或最负面,即我想知道red是否在列表中。那只猫也会出现在该列表中的可能性有多大?

1 个答案:

答案 0 :(得分:2)

对我来说,就像一个频繁出现的项目集问题。

这里有几个python软件包,包括apyorimlxtend

mlxtend用户指南中的示例:

import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori

dataset = [['Milk', 'Onion', 'Nutmeg', 'Kidney Beans', 'Eggs', 'Yogurt'],
           ['Dill', 'Onion', 'Nutmeg', 'Kidney Beans', 'Eggs', 'Yogurt'],
           ['Milk', 'Apple', 'Kidney Beans', 'Eggs'],
           ['Milk', 'Unicorn', 'Corn', 'Kidney Beans', 'Yogurt'],
           ['Corn', 'Onion', 'Onion', 'Kidney Beans', 'Ice cream', 'Eggs']]

te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)

frequent_itemsets = apriori(df, min_support=0.6, use_colnames=True)
frequent_itemsets['length'] = frequent_itemsets['itemsets'].apply(lambda x: len(x))

然后您可以按长度或支持者进行过滤,以查找最经常出现的项目。