首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3 --两列的pandas交叉表

Python3 --两列的pandas交叉表
EN

Stack Overflow用户
提问于 2021-01-03 05:48:45
回答 1查看 450关注 0票数 0

我正在尝试使用本地数据帧中的pd.crosstab创建一个列联表。假设我们问了两个不同组的三个人他们是否喜欢冰激凌的问题,下面是数据框中的结果:

代码语言:javascript
复制
group1    | group2    
------------------
yes       | no    
no        | maybe 
yes       | no    

我希望列联表是这样的:

代码语言:javascript
复制
      | group1     | group2
----------------------------
yes   | 2          | 0
no    | 1          | 2
maybe | 0          | 1 

我玩过熊猫游戏,显然参考了许多不同的资源,包括文档和其他帖子,但我无法理解这一点。有谁有什么想法吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-03 05:52:00

Pandas有一个crosstab函数可以解决这个问题;首先你必须对数据帧执行melt操作:

代码语言:javascript
复制
box = df.melt()
pd.crosstab(box.value, box.variable)

variable    group1  group2
value       
maybe          0    1
no             1    2
yes            2    0

对于性能,groupby可能会更快,即使它涉及到更多的步骤:

代码语言:javascript
复制
box.groupby(["variable", "value"]).size().unstack("variable", fill_value=0)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65544448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档