我会在我的Pandas数据框中找到最小公分母,如下例所示:
dummy = pd.DataFrame([
{'X1':1,'X2':0,'X3':1,'X4':1,'X5':0},
{'X1':1,'X2':1,'X3':0,'X4':0,'X5':0},
{'X1':1,'X2':0,'X3':1,'X4':1,'X5':1},
{'X1':0,'X2':0,'X3':1,'X4':0,'X5':1},
{'X1':0,'X2':0,'X3':0,'X4':0,'X5':1}])
基于此表,我看到具有最多产品(X1,X3,X4,X5)的第三行,并且销售最多的产品是X1,X3和X5(它们都是三遍)。我现在如何找到最小的共同面额?在这种情况下,我想找到X1,X3和X5的组合,因为它已经售出了两次(第一行和第三行)。
谢谢 塞巴斯蒂安
答案 0 :(得分:1)
使用s1 = df.apply(lambda x: sum(x), axis=0)
获取每个产品的计数
>>> s1
X1 3
X2 1
X3 3
X4 2
X5 3
下一步,找到最大数量的产品
>>> max(s1)
3
最后,获得销量最大的产品
>>> s1[s1==max(s1)]
X1 3
X3 3
X5 3
答案 1 :(得分:1)
您可以使用以下方法计算列式总和:
>>> dummy.sum()
X1 3
X2 1
X3 3
X4 2
X5 3
dtype: int64
因此我们可以通过以下方式获得最大列数:
sums = dummy.sum()
indices = sums[sums == sums.max()].index
对于给定的样本数据,这给我们:
>>> indices
Index(['X1', 'X3', 'X5'], dtype='object')