【问题标题】:Unable to include column if all rows are zero in pandas crosstab如果熊猫交叉表中的所有行都为零,则无法包含列
【发布时间】:2021-10-02 08:39:30
【问题描述】:

在熊猫交叉表中,如果另一个列包含全零值,现在我得到如下输出:

  0
0 5
1 2

但我需要得到另一列的输出,即使它包含全零。

  0 1
0 5 0
1 2 0

我正在使用下面的代码来创建交叉表:

data_crosstab = pd.crosstab(data[df_all.columns[56]],
                                    data[df_all.columns[57]], 
                                       margins = False,dropna=False)

【问题讨论】:

    标签: python pandas crosstab zero


    【解决方案1】:

    使用DataFrame.reindex:

    #margins=False is default value, so removed
    #https://pandas.pydata.org/docs/reference/api/pandas.crosstab.html
    data_crosstab = pd.crosstab(data[df_all.columns[56]],
                                data[df_all.columns[57]], dropna=False)
    
    data_crosstab = data_crosstab.reindex(columns=[0,1], fill_value=0)
    

    更通用的解决方案:

    data_crosstab = data_crosstab.reindex(columns=[0,1],index=[0,1], fill_value=0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-09
      • 2018-09-14
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多