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实现爬虫统计学校BBS男女比例之多线程爬虫(二)
Dec 31 Python
Windows平台Python连接sqlite3数据库的方法分析
Jul 12 Python
详解windows python3.7安装numpy问题的解决方法
Aug 13 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
python for 循环获取index索引的方法
Feb 01 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
May 21 Python
python判断文件夹内是否存在指定后缀文件的实例
Jun 10 Python
PYTHON绘制雷达图代码实例
Oct 15 Python
python配置文件写入过程详解
Oct 19 Python
Python绘图实现显示中文
Dec 04 Python
python中怎么表示空值
Jun 19 Python
Pycharm Git 设置方法
Sep 15 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/07/30 PHP
php接口数据加密、解密、验证签名
2015/03/12 PHP
php实现的通用图片处理类
2015/03/24 PHP
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
2016/11/07 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
[43:41]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
python正则表达式re之compile函数解析
2017/10/25 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
python类的实例化问题解决
2019/08/31 Python
python tkinter组件摆放方式详解
2019/09/16 Python
解决Python3下map函数的显示问题
2019/12/04 Python
Python底层封装实现方法详解
2020/01/22 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
平面设计的岗位职责
2013/11/08 职场文书
大学毕业感言一句话
2014/02/06 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
党的群众路线教育实践活动查摆问题自查报告
2014/10/10 职场文书
财务部会计岗位职责
2015/02/03 职场文书
电影复兴之路观后感
2015/06/02 职场文书
五年级数学教学反思
2016/02/16 职场文书
详解CSS中postion和opacity及cursor的特性
2022/08/14 HTML / CSS