白云岛资源网 Design By www.pvray.com
我就废话不多说了,还是直接看代码吧!
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从单条目数据集生成宽表
需求
场景
从医院数据库中导出了大量的体检数据,但体检数据表中,每一行代表某人某次体检的某一项体检的结果。目的想将每一个人的每一次体检结果作为一行存储,每一列为体检项。
示例
目的:转换成如下表格
方案一
具体代码如下
#将'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使用之宽表变窄表的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
白云岛资源网 Design By www.pvray.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
白云岛资源网 Design By www.pvray.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。