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的标准模块包json详解
Mar 13 Python
python+selenium+autoit实现文件上传功能
Aug 23 Python
python的文件操作方法汇总
Nov 10 Python
python print输出延时,让其立刻输出的方法
Jan 07 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
Apr 09 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
基于Python打造账号共享浏览器功能
May 30 Python
tensorflow 实现从checkpoint中获取graph信息
Feb 10 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
Python实现一个简单的递归下降分析器
Aug 01 Python
去除python中的字符串空格的简单方法
Dec 22 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中使用Oracle数据库(2)
2006/10/09 PHP
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
2007/03/15 PHP
php 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
php中使用临时表查询数据的一个例子
2013/02/03 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
JS 时间显示效果代码
2009/08/23 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
vue 中动态绑定class 和 style的方法代码详解
2018/06/01 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
[35:26]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第三局
2016/02/26 DOTA
Python中的装饰器用法详解
2015/01/14 Python
Python中文件的读取和写入操作
2018/04/27 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
浅析Python requests 模块
2020/10/09 Python
深入解析HTML5中的Blob对象的使用
2015/09/08 HTML / CSS
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
班长岗位职责
2013/11/10 职场文书
高一英语教学反思
2014/01/22 职场文书
销售顾问岗位职责
2014/02/25 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
Python import模块的缓存问题解决方案
2021/06/02 Python