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中函数传参详解
Jul 03 Python
python如何通过twisted实现数据库异步插入
Mar 20 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
python模拟表单提交登录图书馆
Apr 27 Python
Python常见数字运算操作实例小结
Mar 22 Python
在python里面运用多继承方法详解
Jul 01 Python
Pandas将列表(List)转换为数据框(Dataframe)
Apr 24 Python
Python 利用OpenCV给照片换底色的示例代码
Aug 03 Python
pycharm 代码自动补全的实现方法(图文)
Sep 18 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 Python
python中Mako库实例用法
Dec 31 Python
Jupyter Notebook内使用argparse报错的解决方案
Jun 03 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
php4与php5的区别小结(配置异同)
2011/12/20 PHP
php数据类型判断函数有哪些
2013/09/23 PHP
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
php中异常处理方法小结
2015/01/09 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
JavaScript URL参数读取改进版
2009/01/16 Javascript
javascript 页面划词搜索JS
2009/09/28 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
简单学习vue指令directive
2016/11/03 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
vue调用微信JSDK 扫一扫,相册等需要注意的事项
2021/01/03 Vue.js
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
Python中pass的作用与使用教程
2020/11/13 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
优秀毕业生自我鉴定
2014/01/19 职场文书
预备党员入党自我评价范文
2014/03/10 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
导游带团欢迎词
2015/09/30 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
python3使用diagrams绘制架构图的步骤
2021/04/08 Python
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby