pandas使用之宽表变窄表的实现


Posted in Python onApril 12, 2020

我就废话不多说了,还是直接看代码吧!

import pandas as pd
# 伪造一些数据
fake_data = {'subject':['math', 'english'],
      'A': [88, 90],
      'B': [70, 80],
      'C': [60, 78]}

# 宽表
test = pd.DataFrame(fake_data, columns=['subject', 'A', 'B', 'C'])
test
	subject	A	B	C
0	math	88	70	60
1	english	90	80	78

# 转换为窄表
pd.melt(test, id_vars=['subject'])

subject	variable	value
0	math	A	88
1	english	A	90
2	math	B	70
3	english	B	80
4	math	C	60
5	english	C	78

补充知识:pandas从单条目数据集生成宽表

需求

场景

从医院数据库中导出了大量的体检数据,但体检数据表中,每一行代表某人某次体检的某一项体检的结果。目的想将每一个人的每一次体检结果作为一行存储,每一列为体检项。

示例

StuID Type Num
0 111021 Math 89
1 111021 English 93
2 312983 English 91
3 314621 English 82
4 314621 Math 92
5 112341 Math 82

目的:转换成如下表格

StuID English Math
0 111021 93 89
1 312983 91 NaN
2 314621 82 92
3 112341 NaN 82

方案一

pandas使用之宽表变窄表的实现

具体代码如下

#将'B'列的类别调整为行。
#1
num = df[~df.duplicated(subset=['StuID'])].loc[:,'StuID'].to_list()
#2
result_df = pd.DataFrame({'StuID': np.array(num)},columns=['StuID','English','Math'])
#3
for i in df.index:
  t = df.loc[i,'Type']
  num = df.loc[i,'StuID']
  result_df.loc[result_df['StuID'] == num,[t]] = df.loc[i,'Num']
print(result_df)

结果

pandas使用之宽表变窄表的实现

以上这篇pandas使用之宽表变窄表的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python批量修改文件后缀示例代码分享
Dec 24 Python
Python处理RSS、ATOM模块FEEDPARSER介绍
Feb 18 Python
Python中暂存上传图片的方法
Feb 18 Python
举例讲解Python中的死锁、可重入锁和互斥锁
Nov 05 Python
python实现分页效果
Oct 25 Python
python清理子进程机制剖析
Nov 23 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 Python
完美解决python3.7 pip升级 拒绝访问问题
Jul 12 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
Dec 06 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
Dec 31 Python
Python flask路由间传递变量实例详解
Jun 03 Python
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
Apr 14 Python
python print 格式化输出,动态指定长度的实现
Apr 12 #Python
设置jupyter中DataFrame的显示限制方式
Apr 12 #Python
Python批量将图片灰度化的实现代码
Apr 11 #Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
Apr 11 #Python
Python实现AI换脸功能
Apr 10 #Python
python使用OpenCV模块实现图像的融合示例代码
Apr 10 #Python
Jupyter notebook运行Spark+Scala教程
Apr 10 #Python
You might like
PHPUnit安装及使用示例
2014/10/29 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
jquery搜索框效果实现方法
2015/01/16 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
解决Vue+Element ui开发中碰到的IE问题
2018/09/03 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
python for循环remove同一个list过程解析
2019/08/14 Python
Jupyter打开图形界面并画出正弦函数图像实例
2020/04/24 Python
Python应用实现处理excel数据过程解析
2020/06/19 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
2020/10/15 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
美国知名保健品网站:LuckyVitamin(支持中文)
2017/08/09 全球购物
"引用"与多态的关系
2013/02/01 面试题
保安拾金不昧表扬信
2014/01/15 职场文书
说明书范文
2014/05/07 职场文书
企业理念标语
2014/06/09 职场文书
申请吧主发表的感言
2015/08/03 职场文书
PHP实现rar解压读取扩展包小结
2021/06/03 PHP