如何合并 pandas 交叉表的类别? [英] How do I merge categories for crosstab in pandas?

查看:52
本文介绍了如何合并 pandas 交叉表的类别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我的熊猫数据框具有3个类别的变量X:[A, B, C]和2个类别的变量Y:[D,E].我想用类似这样的标签:

Suppose my pandas dataframe has 3 categories for variable X: [A, B, C] and 2 categories for variable Y:[D,E]. I want to cross-tab this, with something like:

+--------+----------------------+-----+
|  X/Y   |          D           |  E  |
+--------+----------------------+-----+
| A or B | count(X=A or B, Y=D) | ... |
| C      | count(X=C),Y=D)      | ... |
+--------+----------------------+-----+

推荐答案

这是您要寻找的吗?

import pandas as pd
import numpy as np
x = np.random.choice(['A', 'B', 'C'], size=10)
y = np.random.choice(['D', 'E'], size=10)
df = pd.DataFrame({'X':x, 'Y':y})
df.head()

输出:

    X   Y
0   A   D
1   B   D
2   B   E
3   B   D
4   A   E

数据框修改:

df['X'] = df['X'].apply(lambda x: 'A or B' if x == 'A' or x == 'B' else x)

交叉表应用程序:

pd.crosstab(df.X, df.Y)

输出:

Y       D   E
X       
A or B  1   3
C       4   2

这篇关于如何合并 pandas 交叉表的类别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆