python 转Excel二维表为一维表
今天研究一下使用python怎么把excel二维表转化为一维表。文件名为二维表.xlsx的Sheet1数据源:
二维表.xlsx的Sheet2要实现的结果:
import pandas as pd
df=pd.read_excel('二维表.xlsx',sheet_name='Sheet1')
得到数据源的数据帧:
我们再将第一列设置为索引,去掉默认的数字索引:
df1=df.set_index('品名/数量',drop=True)
结果变成了:
我们再使用DataFrame的stack函数。我们来看一下数据帧stack函数的意思。
意思是将列标题转化为指定水平索引。也就是将横着的列转化为竖着的索引了。使用stack的结果返回的是一个含有多重索引Series.我们试一下例子。代码:
df2=df1.stack()
返回的df2:
已经快接近目标了。df2是一个双重索引的Series.
我们要将这个回到最后的结果,需要在第一层索引加个默认的数值索引即可。有了第一层的索引约束,品名就能完全显示出来了。
代码:df3=df2.reset_index(),就实现了我们要的结果了。
调整一下标题,达到目的:
最后的写入Excel的完整代码,存数据到已经有数据的excel表里注意使用ExcelWriter的写法。不然已经存在的表格都会丢失。我已经翻过车了。写法如下:
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 20 13:40:42 2018@author: FanXiaoLei
"""
import pandas as pd
from openpyxl import load_workbook
df=pd.read_excel('二维表.xlsx',sheet_name='Sheet1')
df1=df.set_index('品名/数量',drop=True)
df2=df1.stack()
df3=df2.reset_index()
df3.columns=['品名','尺寸','数量']
wb=load_workbook('二维表.xlsx')
writer=pd.ExcelWriter('二维表.xlsx',engine='openpyxl')
writer.book=wb
writer.sheets=dict((ws.title,ws) for ws in wb.worksheets)
df3.to_excel(writer,sheet_name='Sheet2',index=False)
writer.save()
结果实现:
python 转Excel二维表为一维表相关推荐
- 一维转二维_Excel – 一维表和二维表相互转换,只要一个“=”搞定
关于一维表和二维表的互相转化方法,我真的写过很多种了.且不说在各种案例中顺带提到的技巧,单独开篇讲的,就有以下这些: (头条号功能维护中,暂时无法添加超链接,有兴趣的读者请关注我,查看下历史记录吧) ...
- PowerBI强大的数据汇总能力:将几十张Excel二维表批量转换成一维表进行可视化分析
目录 如何分析单张二维表数据 如何用PowerBI搞定几十张二维表 操作步骤 打开Power BI Desktop,获取数据,自文件夹,选择数据源路径,确定 选择转换数据 保留content列,删除其 ...
- Excel二维交叉表恢复为一维表
工作中遇到这样的问题,收到Excel二维交叉表(数据透视表的结果,但已经保存为普通Excel),根据业务需要将其再次恢复为一维表. 如果数据量小的话,简单的复制剪切就可以了,如果数据量大的话,那么太繁 ...
- java 导出excel二维表,如何轻松将EXCEL二维统计表转为数据清单?
Excel二维统计表转为数据清单的方法主要有多重数据透视法和Power Query逆透视法两种,其中多重数据透视法比较繁琐,而且数据源发生变化时,得重新操作,而使用Excel的新功能Power Que ...
- python一维数组和二维数组,Python numpy实现二维数组和一维数组拼接的方法
撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape 输出的值应该为(3,) 二维数组 2.numpy初始化二 ...
- python中的二维数组与一维数组,矩阵和一维数组之间的运算
一.python中的二维数组和一维数组之间的运算 1.当二维数组为p×p维 a=np.array([[1,2],[3,4]]) print(a.shape) a 输出: (2, 2) array([[ ...
- 一维二维_Excel教程:二维转一维,方法你绝对没用过
提示:小程序可以高清看本公众号视频教程 苹果iOS用户请微信扫码学习 一.数据透视表的方法 操作步骤: 按键调出[数据透视表和数据透视图向导] 选中[多重合并计算数据区域],点[下一步] [创建单页字 ...
- python随机生成二维列表_对python产生随机的二维数组实例详解
对python产生随机的二维数组实例详解 最近找遍了python的各个函数发现无法直接生成随机的二维数组,其中包括random()相关的各种方法,都没有得到想要的结果.最后在一篇博客中受到启发,通过列 ...
- 如何用python制作动态二维码,提升表白成功率?
来源:凹凸数据 本文约1000字,建议阅读5分钟. 本文教你用python制作动态二维码,助你表白成功! 关注数据派THU(DatapiTHU)后台回复"20200520"获取完整 ...
- 深入浅出python机器学习_如何用python画(绘制)二维函数(二维图)?
参考文档 python 如何绘制二维函数? from matplotlib import pyplot as plt import numpy as np low=lambda x:10000 if ...
最新文章
- 华为鸿蒙电脑操作系统测试版,官方公布教程:鸿蒙OS测试版返回EMUI 11
- 部署并使用Docker(Alibaba Cloud Linux 2)
- 实现一个div在浏览器水平居中
- php点菜系统开题报告,点餐管理系统的设计与实现-开题报告
- Identifiers in Java(Java标识符)
- 关于Java泛型和擦除
- JavaOne 2012:Lambda之路
- VC++6遇到的问题(持续更新)
- swagger里面显示的示例参数格式错误
- Tomcat下java普通类IO文件路径问题
- Aras Innovator 11 sp2安装
- 想学开服技术,先了解服务端的组成
- Spring MVC 之 DispatcherServlet之主题
- MySQL中concat()、concat_ws()、group_concat()三个函数的使用技巧案例与心得总结
- 盘式过滤器详细介绍分析
- xcode打包报错Command CodeSign failed with a nonzero exit code的解决方案
- 人机融合系统的休谟之问到工业智能的成熟应用的联想
- 【黑客游戏】学习知识又能玩游戏
- android 获取文件大小
- 近期大热的实时直播答题系统的实现思路与技术难点分享