我想为2个类别变量(性别,种族)的堆栈2交叉表,同时保留相同的二进制变量(目标)作为列.

以下面的数据集为例:

df = pd.DataFrame({'GenderDSC':['Male','Female','Female','Male','Male','Male'],
             'Goal':[0,1,0,1,0,0],
             'Race':['African-American','White','White','Asian','Asian','White']})
df

交叉表将输出的位置:

enter image description here enter image description here

但希望将它们合并为:

enter image description here

到目前为止,我已经try 了:

a = pd.crosstab(df['GenderDSC'],df['Goal'])
b = pd.crosstab(df['Race'],df['Goal'])
pd.concat([a,b])

enter image description here

但我丢失了每个专栏(Genderdsc、Race)的组,所以我想可能有更好的方法将它们联系起来.

推荐答案

使用参数keys from pd.concat

>>> pd.concat([a,b], keys=('GenderDSC', 'Race'))

从文件上看,

如果通过了多个级别,则应包含元组.使用传递的键作为最外层构建分层索引.


Goal                        0  1
GenderDSC Female            1  1
          Male              3  1
Race      African-American  1  0
          Asian             1  1
          White             2  1

Python相关问答推荐

如果AST请求默认受csref保护,那么在Django中使用@ system_decorator(csref_protect)的目的是什么?

过载功能是否包含Support Int而不是Support Int?

如何在Python中使用ijson解析SON期间检索文件位置?

将行从一个DF添加到另一个DF

查找两极rame中组之间的所有差异

Python键入协议默认值

在np数组上实现无重叠的二维滑动窗口

优化器的运行顺序影响PyTorch中的预测

Python逻辑操作作为Pandas中的条件

我的字符串搜索算法的平均时间复杂度和最坏时间复杂度是多少?

CommandeError:模块numba没有属性generated_jit''''

在嵌套span下的span中擦除信息

Matplotlib中的字体权重

为什么'if x is None:pass'比'x is None'单独使用更快?

如何使用Azure Function将xlsb转换为xlsx?

如何训练每一个pandaprame行的线性回归并生成斜率

如何设置nan值为numpy数组多条件

Django.core.exceptions.SynchronousOnlyOperation您不能从异步上下文中调用它-请使用线程或SYNC_TO_ASYNC

为什么Visual Studio Code说我的代码在使用Pandas concat函数后无法访问?

有了Gekko,可以创建子模型或将模型合并在一起吗?