我有一個DF,看起來像這樣:尋找類似的羣體基於價值觀的不同列的交叉點
Group Attribute
Cheese Dairy
Cheese Food
Cheese Curd
Cow Dairy
Cow Food
Cow Animal
Cow Hair
Cow Stomachs
Yogurt Dairy
Yogurt Food
Yogurt Curd
Yogurt Fruity
我想要什麼,每組做的就是找到它的最喜歡的組,基於屬性的交集。我想要的最終形式是:
Group TotalCount LikeGroup CommonWords PCT
Cheese 3 Yogurt 3 100.0
Cow 5 Cheese 2 40.0
Yogurt 4 Cheese 4 75.0
我意識到這可能會在一個問題上問很多。我可以做很多事情,但我真的失去了對屬性交集的計數,即使在一個組和另一個組之間也是如此。如果我能找到奶酪和酸奶酪之間的交叉點數,這會使我朝着正確的方向發展。
是否有可能在數據框內做到這一點?我可以看到製作幾個列表並在所有列表對之間進行交集,然後使用新的列表長度來獲取百分比。
例如,對於酸奶:
>>>Yogurt = ['Dairy','Food','Curd','Fruity']
>>>Cheese = ['Dairy','Food','Curd']
>>>Yogurt_Cheese = len(list(set(Yogurt) & set(Cheese)))/len(Yogurt)
0.75
>>>Yogurt = ['Dairy','Food','Curd','Fruity']
>>>Cow = ['Dairy','Food','Animal','Hair','Stomachs']
>>>Yogurt_Cow = len(list(set(Yogurt) & set(Cow)))/len(Yogurt)
0.5
>>>max(Yogurt_Cheese,Yogurt_Cow)
0.75
這顯示了所有組的常用詞的百分比,但我可以輕鬆地從這裏開始,我認爲這可能比我所要求的更有用。非常感謝。 –
沒問題。如果有人有類似的問題,你應該接受答案;) – Nemo