熊猫数据框的最小公分母

时间:2020-06-22 15:11:27

标签: python pandas

我会在我的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的组合,因为它已经售出了两次(第一行和第三行)。

谢谢 塞巴斯蒂安

2 个答案:

答案 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')