gpt4 book ai didi

python - 在列表的数据框中找到最常见的对

转载 作者:太空宇宙 更新时间:2023-11-03 14:08:04 24 4
gpt4 key购买 nike

我有一个包含列 ID, Product 的数据框。例如,

ID  Product
1 ['a','b']
2 ['a','b','e']
3 ['c','d']
4 ['a','b','c','d']

Product 是一个列表字段,其中每个列表都包含一个人拥有的产品。例如,ID 为 1 的人有产品 ab。我需要找到最受欢迎/最常见的产品对。在此示例中,产品 [a,b] 最受欢迎。它必须是最常见的产品对,因为没有人可以拥有 1 种产品。

最佳答案

1) 使用itertools.combinations获取所有可能的对组合,并将结果系列转换为列表表示形式,稍后需要将其提供给数据框构造函数。

2) 堆叠DF 并取相应的Series.value_counts() .使用 Series.idxmax() 获取计数最高的索引.


import itertools

comb = lambda x: list(itertools.combinations(x, 2))
L = df['Product'].map(comb).tolist()
pd.DataFrame(L).stack().value_counts(sort=False).idxmax()
Out[21]:
('a', 'b')

编辑:(基于说明新要求的评论)

a, cnt = np.unique(df.Product.values, return_counts=True)
a[cnt==cnt.max()]
array([['a', 'b', 'e']], dtype=object)

关于python - 在列表的数据框中找到最常见的对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41802834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com