【问题标题】: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)