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简单调用MySQL存储过程并获得返回值的方法
Jul 20 Python
python 通过xml获取测试节点和属性的实例
Mar 31 Python
python3安装pip3(install pip3 for python 3.x)
Apr 03 Python
Python实现自定义函数的5种常见形式分析
Jun 16 Python
详解pyinstaller selenium python3 chrome打包问题
Oct 18 Python
基于pytorch 预训练的词向量用法详解
Jan 06 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
Apr 07 Python
Python更换pip源方法过程解析
May 19 Python
Python内存泄漏和内存溢出的解决方案
Sep 26 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 Python
解决Pymongo insert时会自动添加_id的问题
Dec 05 Python
Python破解极验滑动验证码详细步骤
May 21 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
php面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
PHP 创建标签云函数代码
2010/05/26 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
JS加载iFrame出现空白问题的解决办法
2016/05/13 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
vue中的非父子间的通讯问题简单的实例代码
2017/07/19 Javascript
VUE实现一个分页组件的示例
2017/09/13 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
Python中实现结构相似的函数调用方法
2015/03/10 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
使用Python刷淘宝喵币(低阶入门版)
2019/10/30 Python
Python sorted对list和dict排序
2020/06/09 Python
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
企划专员岗位职责
2013/12/09 职场文书
材料加工工程求职信
2014/02/19 职场文书
运动会开幕式主持词
2014/03/28 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
买卖合同协议书范本
2014/10/18 职场文书
离婚协议书范文2015
2015/01/26 职场文书
追讨欠款律师函
2015/05/27 职场文书
暖春观后感
2015/06/08 职场文书
python实现自定义日志的具体方法
2021/05/28 Python