代码之家  ›  专栏  ›  技术社区  ›  Evan Aad

对二进制序列进行计数需要花费过多的时间,最终会产生一个奇怪的情节

  •  0
  • Evan Aad  · 技术社区  · 11 月前

    从下面的屏幕截图中可以看出,我的 y_train 序列包含两个值:0和1。那么,为什么countplot几乎需要4分钟才能运行,当它最终完成时,它会生成一个与数据无关的图呢?

    countplot

    1 回复  |  直到 11 月前
        1
  •  1
  •   mozway    11 月前

    假设最近一次海运(0.13.2)。

    如果您将系列赛传给 data ,这被认为是一种广泛的格式。

    数据 :DataFrame、Series、dict、array或数组列表

    用于打印的数据集。如果x和y不存在,这被解释为宽形式。否则,它被认为是长形式。

    import seaborn as sns
    
    y_train = pd.Series([0, 1, 1, 0], name='count')
    
    sns.countplot(data=y_train)
    

    输出

    enter image description here

    在您的案例中,这会创建20000多个条。

    你可以转换 to_frame 并将名称作为 x :

    import seaborn as sns
    
    y_train = pd.Series(np.repeat([0, 1], [16548, 5251]), name='count')
    
    sns.countplot(data=y_train.to_frame(), x='count')
    

    enter image description here

    请注意,直接将系列传递到 x :

    sns.countplot(x=y_train)