#本代码要点:多表合并、数据透视表、拆分合并单元格并获得一维表
#主题:各门店合并,计算各店当月回店做服务2次+的客人数量
#EXCEL工作表:存在合并单元格
#备注

import pandas as pd
import os
#多表合并
inputdir=r’C:\Users\HW\Desktop\新建文件夹’
df_empty=pd.DataFrame(columns=[‘开单分店’,‘顾客姓名’,‘手机号’,‘指标值’])
for parents,dirnames,filenames in os.walk(inputdir):
for filename in filenames:
df=pd.read_excel(os.path.join(parents,filename))
df_empty=df_empty.append(df,ignore_index=True)

#数据分组:数据透视表
#备注:数据分组之后会存在合并单元格
df_new=df_empty[‘指标值’].groupby([df_empty[‘开单分店’],df_empty[‘顾客姓名’]]).sum()

#数据拆分:拆分合并单元格
#为了满足数据分析的要求,需要将一列中多行合并单元格拆分成一个个的观测,并且每个观测的值与原来合并的值相等。

import openpyxl
#加载已数据分组的工作表(存在合并单元格)
workbook = openpyxl.load_workbook(r’C:\Users\HW\Desktop\练习.xlsx’)
name_list = workbook.sheetnames
worksheet = workbook[name_list[0]]

合并单元格的位置信息,可迭代对象(单个是一个’openpyxl.worksheet.cell_range.CellRange’对象),print后就是excel坐标信息

m_list = worksheet.merged_cells
cr = []
for m_area in m_list:
# 合并单元格的起始行坐标、终止行坐标
r1, r2, c1, c2 = m_area.min_row, m_area.max_row, m_area.min_col, m_area.max_col
# 纵向合并单元格的位置信息提取出
if r2 - r1 > 0:
cr.append((r1, r2, c1, c2))
print(‘符合条件%s’ % str(m_area))

#这里注意需要把合并单元格的信息提取出再拆分
for r in cr:
worksheet.unmerge_cells(start_row=r[0], end_row=r[1],
start_column=r[2], end_column=r[3])
for row in range(r[0], r[1]):
worksheet.cell(row=row+1, column=r[3], value=worksheet.cell(r[0], r[3]).value)
#获得一维表
workbook.save(‘data.xlsx’)

file_path=r’C:\Users\HW\Desktop\data.xlsx’
df=pd.read_excel(file_path)
df1=df[(df[‘开单分店’]==‘门店A’)&(df[‘指标值’]>1)]
df1.to_excel(“练习2.xls”)

感谢:https://blog.csdn.net/weixin_44788825/article/details/104526131?spm=1001.2014.3001.5506

学习Python处理Excel 难度1级别 多表合并、数据透视表、拆分合并单元格并获得一维表相关推荐

  1. 学习Python处理Excel 难度0级别 多表合并、多条件筛选、找出重复项、去重

    #本代码要点:多表合并.多条件筛选.找出重复项.去重 #主题:计算特定两个时间周期内回店且消费的重复客户清单以及未再次回店的客户清单 #EXCEL工作表:一维表 #备注:假设会员姓名不存在重名:否则找 ...

  2. 如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件?

    如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件? 1.问题描述 2.解决过程 2.1 问题分析: 2.2 解决思路 3.运行结果 1.问题描述 最近在处理一堆工 ...

  3. python筛选excel某一列中相同的数据

    求赞----求关注 python筛选excel某一列中相同的数据 1.需要cmd下载 pip install pandas  的模板 2.注意文件的路径问题不要出错 3.还有文件的编码格式 ----- ...

  4. java excel列宽自动换行_Excel单元格中数据如何自动换行以便适应单元格的大小

    Excel单元格中数据如何自动换行以便适应单元格的大小 时间:2014-04-26   作者:snow   来源:互联网 在处理数据的过程中难免会遇到一些问题,而我们并不可能在第一时间内解决,就比如在 ...

  5. Excel拆分同一单元格的两行内容为两行(备忘记录)

    如何把一个单元格的两行内容改为二个单元格(每个单元格分别为修改之前的单元格的一行内容)? 如上图JIRA导出的数据中B列的单元格数据是两行,现在想拆分开,分别做成两列显示,以方便程序数据读取,那具体怎 ...

  6. html行标签并列显示,excel数据透视表_excel数据透视表怎样不显示汇总

    EXCEL中的数据透视表有什么作用,用在哪些方面? excel2010数据透视表怎么做 excel2010数据透视表做法,需要用户打开需要编辑的文件,进入后点击数据透视表,选中我们需要统计的数据,默认 ...

  7. python科学计数法转换_柳小白Python学习笔记35 Excel之科学计数法类型转换及数据选取1...

    昨天学习了使用pandas模块如何查看Excel工作表"wz"的基本信息.今天学习,转换数字科学计数法格式及提取需要处理的数据,接下来就进入今天的学习吧. 一.转换科学计数法格式 ...

  8. Python操作excel文件根据某一字段将相同的类拆分

    背景:A表内容如下,根据B列字段分类,拆分成多个表(工作簿) 环境配置:需要安装pandas,xlrd,openpyxl库 #将一个excel表根据某列字段拆分为多个工作表import pandas ...

  9. Python对Excel中具体某几列进行数据预处理

    1.利用python读取Excel中.xls文件中所有数据 #encoding=utf-8 import xlrd import xlwt from xlwt import *fileName=&qu ...

最新文章

  1. windows 10 下部署WCF 一些细节
  2. 视图需要创建类吗_建筑类的职称需要先评初级吗
  3. 文字处理的标签及属性
  4. 宝德服务器pr2710装系统过程,宝德PR2710R服务器
  5. sqlite3学习笔记-方法介绍和测试代码
  6. leetcode[81]Search in Rotated Sorted Array II
  7. FFmpeg 编码、解码器列表(IOS)
  8. 二寸证件照尺寸怎么调?这两个方法让你在家也能制作证件照
  9. 腾讯走上王者之位,你以为靠的只是抄袭?
  10. TensorFlow学习——Tensorflow Object Detection API(win10,CPU)
  11. 做科研的几点体会:如何多发 SCI
  12. 美术基础对学3D游戏建模重要吗?零基础如何学3D建模
  13. 在CMD中输入adb命令,提示“‘adb‘ 不是内部或外部命令,也不是可运行程序或批处理文件”的解决方法
  14. 我用 go-zero 一周实现了一个中台系统,已开源!
  15. 【09CWOW总结】看你妹之《网瘾战争》
  16. linux 实现自动安装,基于cobbler 实现自动安装linux系统
  17. 解决锁等待超时的解决方法
  18. 教程--企业微信接入智能机器人
  19. CCNP350-401学习笔记(1-50题)
  20. 【模型库】KR 10 R900 sixx CR小型机器人

热门文章

  1. python 调用接口
  2. 添加tomcat服务
  3. zsh: command not find解决办法
  4. android如何查看分区信息,【Android】Android如何查看分区情况
  5. SL8521E开发笔记---UART配置
  6. Android7.1 控制背光流程
  7. 基于STM32的智能小车方案设计
  8. Python——LeetCode刷题——【387. 字符串中的第一个唯一字符】
  9. SQL数据库根据指定字段去重
  10. nginx启动、停止、重启命令