0

我正在尝试使用 uptplot 来查找数据框中列数据之间的交集。我正在使用该库的开发人员提供的代码,如下所示:

import upsetplot
from upsetplot import from_indicators, plot 
   
plot(from_indicators(indicators=pd.notna, data=data), show_counts=True)
plt.show()

因此,上面的代码给了我一个图表作为输出,其中包含不为空(不是数字)的 df 中的单元格/pd_series 的计数。但是我想要一个代码,而不是 notna 我可以计算所有列中的“核心”项目。

我上面的代码将从这个数据框中给我(在这个例子中将数字更改为字母):

-------column_1--column_2--column_3--column_4--column_5     
row_1--   A    --   A    --        --   A    --   
row_2--   B    --        --   B    --   B    --  
row_3--        --        --   C    --        --
row_4--   D    --   D    --        --   D    --
row_5--   E    --        --   E    --        --
row_6--        --        --        --        --   F

...类似于这样的图形:

column_1 :           **** (4 not_empty)
column_3, column_4 : *** (3 not_empty)
column_2 :           ** (2 not_empty)
column_5 :           * (1 not_empty)

但实际上我想要的是一个包含如下信息的图表:

column_1, column_2, column_4 : ** (A, D in_common)
column_1, column_3, column_4 : * (B in_common)
column_1, column_3 :           * (E in_common)
column_5 :                     - (F not_in_common)

你们中是否有人对如何将“pd.notna”更改为另一段可以提供我正在寻找的代码的想法?提前致谢!

4

1 回答 1

0

UpSet 图显示了这两个图。总计图是前者,交集/子集图是后者。

https://gist.github.com/jnothman/0fc6daf3d9d75513dd3311e86e06cc8c

于 2021-09-09T11:23:11.010 回答