Python皮/Pandas皮:制作多变量列联表

xdnvmnnf  于 2022-11-05  发布在  Python
关注(0)|答案(2)|浏览(268)

我的数据框有4列(一个因变量和3个自变量)。
下面是一个示例:

我希望得到的结果是一个列联表,如下所示:

我似乎只能使用一个自变量得到一个列联表-使用下面的代码(我的df被称为'table')

pd.crosstab(index=table['Dvar'],columns=table['Var1'])

我似乎不能添加任何其他变量......唯一的方法是为每个变量(1到3)制作一个单独的列联表,然后合并/连接它们吗?

gk7wooem

gk7wooem1#

首先,列联表用于显示特征之间的相关性。
如果您希望大概了解独立和从属特征之间的相关性,请执行以下代码:

pd.crosstab([table['Var1'],table['Var2'],table['Var3']],
            table['Dvar'], margins = False)

但是,如前所述,要获得所需的输出,请使用pandas.DataFrame.groupby语句:

table.groupby('Dvar').sum()
lo8azlld

lo8azlld2#

对于crosstab,这不是一个好的用例,因为您已经有了列联表(只是没有聚合),而应该使用groupby.sum

df = pd.DataFrame([[1,0,0,0],
                   [1,1,1,0],
                   [0,1,1,1]], columns=['Var1', 'Var2', 'Var3', 'Dvar'])

out = df.groupby('Dvar', as_index=False).sum()

输出:

Dvar  Var1  Var2  Var3
0     0     2     1     1
1     1     0     1     1

相关问题