python 分类变量转因子变量_python – 将分类变量的Pandas DataFrame转换为具有计数和比例的MultiIndex...
我有一个包含几个分类变量的Pandas DataFrame.例如:
import pandas as pd
d = {'grade':['A','B','C','A','B'],
'year':['2013','2013','2013','2012','2012']}
df = pd.DataFrame(d)
我想将其转换为具有以下属性的MultiIndex DataFrame:
>第一级索引是变量名称(例如“等级”)
>二级指数是变量内的水平(例如’A’,’B’,’C’)
>一列包含’n’,即级别出现次数的计数
>第二列包含’比例’,该比例表示的比例.
例如:
有人可以建议一种创建这个MultiIndex DataFrame的方法吗?
最佳答案 另一种方法可以使用melt和groupby:
df_out = df.melt().groupby(['variable','value']).size().to_frame(name='n')
df_out['proportion'] = df_out['n'].div(df_out.n.sum(level=0),level=0)
print(df_out)
输出:
n proportion
variable value
grade A 2 0.4
B 2 0.4
C 1 0.2
year 2012 2 0.4
2013 3 0.6
并且,如果你真的想变得疯狂并且在单行中做:
(df.melt().groupby(['variable','value']).size().to_frame(name='n')
.pipe(lambda x: x.assign(proportion = x[['n']]/x.groupby(level=0).transform('sum'))))
使用@Wen pct计算升级的解决方案:
(df.melt().groupby(['variable','value']).size().to_frame(name='n')
.pipe(lambda x: x.assign(proportion = x['n'].div(x.n.sum(level=0),level=0))))
python 分类变量转因子变量_python – 将分类变量的Pandas DataFrame转换为具有计数和比例的MultiIndex...相关推荐
- python环境变量是什么意思_python设置环境变量有什么用
设置Python的环境变量的作用: 当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找.用户通过设置环境变量,来更好的运行进程. ...
- python处理多个excel数据_python 数据分析基础 day8-pandas读写多个excel文件
今天是读<python数据分析基础>的第8天,今天的读书笔记的内容为利用pandas读写多个excel文件,当中涉及到读写excel文件的多个工作表. 大致原理如下: glob.glob( ...
- python中iloc切片_如何使用iloc和loc 对Pandas Dataframe进行索引和切片
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 在这篇文章中,我们将使用iloc和loc来处理数据.更具体地说,我们将通过iloc和loc例子来学习切片和 ...
- python中有效的变量名有哪些_python 如何使用变量名
现在用python一般都是赋值, 但是 我想把变量名直接给打印出来,而不是 它的值.老之前就想弄,但一直 没有上心这个事情.今天终于找到了相关的参考: import inspect def retri ...
- python语言需要变量生明吗_python需要定义变量吗
python中定义一个变量不需要声明,直接复制便可初始化一个变量 1.变量声明 声明变量的时候,直接使用例如a = 1这样的方式即可. 既不用像js语言那样使用一个通用的var或者let之类方式表示声 ...
- python多个变量与字符串判断_python怎么判断变量是否为字符串
在python中怎么连接变量和字符串?我真的懂你不是喜新厌旧只是我没能在你寂寞的时候伴你左右 假设你的变量也是str类型 直接用+号就可以a="test"connect=a+&qu ...
- python变量的赋值操作_Python中关于变量赋值操作的实例分享
这篇文章主要介绍了Python编程之变量赋值操作,结合实例形式分析了Python赋值.位移.多元赋值操作符等相关操作使用技巧,需要的朋友可以参考下 本文实例讲述了Python编程之变量赋值操作.分享给 ...
- python布尔型变量错误的赋值_Python中布尔变量的值为( )
[单选题]x 的 y 次方(xy) 以下表达式正确的是________ [多选题]以下关于 Python 字符串的描述中,正确的是( ) [多选题]下列表达式的值为False的是( ) [其它]返回 ...
- python对excel操作简书_Python实现EXCEL常用操作——pandas简介
知乎的代码块太丑了,这里的内容就更新到简书了Python实现EXCEL常用操作--pandas简介www.jianshu.com EXCEL是日常办公最常用的软件,然而遇到数据量特别大(超过10W条 ...
最新文章
- Linux中的In命令
- Spark数据分析实战:大型活动大规模人群的检测和疏散
- isalnum()函数:找出str字符串中为英文字母或数字的字符
- MySQL索引与Index Condition Pushdown(二)
- 简单使用TFS管理源代码
- Linux服务部署之NTP时间服务器
- Docker 配置,详细说明 daemon.json 的作用
- 让人想骂街的 Python 炫技操作:条件语句的七种写法
- vscode regex previewer插件怎么用_分享五款开挂神器!助你效率倍增!做PPT怎么能不会用插件?...
- Java 实现图书管理系统
- QCC3003项目实战:BlueMotor6 AGHFP CVC 蓝牙对讲耳机
- PowerPoint2007文件格式
- 解除 网课失去焦点/离开页面 就自动暂停 的限制
- java中this有什么作用_Java中this有什么用
- 【智慧城市】智能照明系统解决方案
- 【译】雄迈摄像头爆出Mirai僵尸网络
- 新浪微博PC端登录分析
- 虚拟机xftp工具连接服务器,xftp5(ftp上传工具)如何连接虚拟机?
- Apache Ant简介
- 如何将本地代码保存至码云中