今天研究一下使用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二维表为一维表相关推荐

  1. 一维转二维_Excel – 一维表和二维表相互转换,只要一个“=”搞定

    关于一维表和二维表的互相转化方法,我真的写过很多种了.且不说在各种案例中顺带提到的技巧,单独开篇讲的,就有以下这些: (头条号功能维护中,暂时无法添加超链接,有兴趣的读者请关注我,查看下历史记录吧) ...

  2. PowerBI强大的数据汇总能力:将几十张Excel二维表批量转换成一维表进行可视化分析

    目录 如何分析单张二维表数据 如何用PowerBI搞定几十张二维表 操作步骤 打开Power BI Desktop,获取数据,自文件夹,选择数据源路径,确定 选择转换数据 保留content列,删除其 ...

  3. Excel二维交叉表恢复为一维表

    工作中遇到这样的问题,收到Excel二维交叉表(数据透视表的结果,但已经保存为普通Excel),根据业务需要将其再次恢复为一维表. 如果数据量小的话,简单的复制剪切就可以了,如果数据量大的话,那么太繁 ...

  4. java 导出excel二维表,如何轻松将EXCEL二维统计表转为数据清单?

    Excel二维统计表转为数据清单的方法主要有多重数据透视法和Power Query逆透视法两种,其中多重数据透视法比较繁琐,而且数据源发生变化时,得重新操作,而使用Excel的新功能Power Que ...

  5. python一维数组和二维数组,Python numpy实现二维数组和一维数组拼接的方法

    撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape 输出的值应该为(3,) 二维数组 2.numpy初始化二 ...

  6. python中的二维数组与一维数组,矩阵和一维数组之间的运算

    一.python中的二维数组和一维数组之间的运算 1.当二维数组为p×p维 a=np.array([[1,2],[3,4]]) print(a.shape) a 输出: (2, 2) array([[ ...

  7. 一维二维_Excel教程:二维转一维,方法你绝对没用过

    提示:小程序可以高清看本公众号视频教程 苹果iOS用户请微信扫码学习 一.数据透视表的方法 操作步骤: 按键调出[数据透视表和数据透视图向导] 选中[多重合并计算数据区域],点[下一步] [创建单页字 ...

  8. python随机生成二维列表_对python产生随机的二维数组实例详解

    对python产生随机的二维数组实例详解 最近找遍了python的各个函数发现无法直接生成随机的二维数组,其中包括random()相关的各种方法,都没有得到想要的结果.最后在一篇博客中受到启发,通过列 ...

  9. 如何用python制作动态二维码,提升表白成功率?

    来源:凹凸数据 本文约1000字,建议阅读5分钟. 本文教你用python制作动态二维码,助你表白成功! 关注数据派THU(DatapiTHU)后台回复"20200520"获取完整 ...

  10. 深入浅出python机器学习_如何用python画(绘制)二维函数(二维图)?

    参考文档 python 如何绘制二维函数? from matplotlib import pyplot as plt import numpy as np low=lambda x:10000 if ...

最新文章

  1. 华为鸿蒙电脑操作系统测试版,官方公布教程:鸿蒙OS测试版返回EMUI 11
  2. 部署并使用Docker(Alibaba Cloud Linux 2)
  3. 实现一个div在浏览器水平居中
  4. php点菜系统开题报告,点餐管理系统的设计与实现-开题报告
  5. Identifiers in Java(Java标识符)
  6. 关于Java泛型和擦除
  7. JavaOne 2012:Lambda之路
  8. VC++6遇到的问题(持续更新)
  9. swagger里面显示的示例参数格式错误
  10. Tomcat下java普通类IO文件路径问题
  11. Aras Innovator 11 sp2安装
  12. 想学开服技术,先了解服务端的组成
  13. Spring MVC 之 DispatcherServlet之主题
  14. MySQL中concat()、concat_ws()、group_concat()三个函数的使用技巧案例与心得总结
  15. 盘式过滤器详细介绍分析
  16. xcode打包报错Command CodeSign failed with a nonzero exit code的解决方案
  17. 人机融合系统的休谟之问到工业智能的成熟应用的联想
  18. 【黑客游戏】学习知识又能玩游戏
  19. android 获取文件大小
  20. 近期大热的实时直播答题系统的实现思路与技术难点分享

热门文章

  1. 001深度强化学习的异步方法
  2. 模拟登录人人网,豆瓣
  3. 股东控股关系图谱简化版
  4. HPE comms CTO:我们的单位在增长,即使我们的客户不是
  5. UESTC 1634 去年春恨却来时,落花人独立,微雨燕双飞
  6. 曾经,我以为我很懂MySQL索引
  7. 毕业设计(毕设)目标和要求 (以计算机软件毕业设计为例)
  8. ClickHouse磁盘清理
  9. 打造千万级流量秒杀 过载保护:如何通过熔断和限流解决流量过载问题?
  10. [笔记] Golang小试实现神经网络框架