【发布时间】:2017-09-18 08:45:49
【问题描述】:
我有一个相当大的数据框,基本上如下所示:
df_apple = pd.DataFrame({'_id': ['A','B' ,'C'], 'apple': ['1', '0', '1'], 'orange': ['1', '1', '0'], 'kiwi': ['1', '0', '1']})
我有每个_id 具有特征和二进制分类的列。我正在尝试为apple、orange 和kiwi 的每个排列/组合找到所有个体 (_id) 的频率和总数。这类似于这个问题here。
在这个玩具箱中,apple、orange 和 kiwi 的组合出现了一次 (_id == A),而apple == 0 & orange==1 & kiwi==0 的组合则根本不出现。
我正在尝试创建一个应包含以下信息的输出:
df_combination = pd.DataFrame({'_id': ['Apple, Orange and Kiwi','Only Orange' ,'Apple and Kiwi but not Orang'], 'Count': ['1', '1', '1']})
即一个数据框告诉我,找到哪种组合以及频率。我对根本不出现的组合不感兴趣。
但是,我的数据框大约有 300 列。我无法先验地指定它们,并且通过计算解决这将需要很长时间。任何想法如何以一种好的方式解决这个问题?
【问题讨论】:
-
你知道300有多大吗!是?
-
您是否正在尝试构建association rules?
-
我认为您实际上想要组合,或者一般的子集。有 2^300 种可能性,这仍然太多了,但它与排列不一样......你需要的结果到底是什么?任何给定的列子集出现的次数?
-
@Rachel 您只想计算每个排列的数量吗?你希望这个数据框的输出是什么,你能澄清一下吗?
标签: python-3.x pandas permutation