处理货物数据

news2024/11/23 8:24:35

主题

对xlsx文件进行清洗

第一步

将g2到y2的标题复制到g4和y4

安装操作库
pip install openpyxl

下载失败,更换为阿里源

pip install library -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

下载仍然失败

再次换源

pip install openpyxl -i https://pypi.doubanio.com/simple

下载成功

尝试复制行

python openpyx对整行进行复制 https://blog.51cto.com/u_16213363/7065319

打开已有的 xls文件

from openpyxl import load_workbook
# 加载工作簿
wb2 = load_workbook('Mytest.xlsx')
# 获取sheet页
ws2 = wb2['mytest']
ws3 = wb2.get_sheet_by_name('mytest')
# 打印sheet页的颜色属性值
print('color:',ws2.sheet_properties.tabColor)
wb2.close()

创建一个工作簿对象

# This is a sample Python script.

# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.

from openpyxl import Workbook
from openpyxl import load_workbook


def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.


# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print_hi('PyCharm')
    #创建一个工作簿对象
    wb = Workbook()
    # 在索引为0的位置创建一个名为mytest的sheet页
    ws = wb.create_sheet('mytest', 0)
    # 对sheet页设置一个颜色(16位的RGB颜色)
    ws.sheet_properties.tabColor = 'ff72BA'
    # 将创建的工作簿保存为Mytest.xlsx
    wb.save('./src/Mytest.xlsx')
    # 最后关闭文件
    wb.close()
    #data = xlrd.open_workbook('原始数据')  # 文件名以及路径,如果路径或者文件名有中文给前面加一个 r
    
# See PyCharm help at https://www.jetbrains.com/help/pycharm/

加载一个工作簿、

from openpyxl import load_workbook
# 加载工作簿
wb2 = load_workbook('Mytest.xlsx')
# 获取sheet页
ws2 = wb2['mytest']
ws3 = wb2.get_sheet_by_name('mytest')
# 打印sheet页的颜色属性值
print('color:',ws2.sheet_properties.tabColor)
wb2.close()

修改第一个表单名字为-销售明细

# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print_hi('PyCharm')
    # 加载工作簿
    wb = load_workbook('./src/原始数据.xlsx')
    # 获取sheet页,修改第一个sheet页面为
    name1 = wb.sheetnames[0]
    ws = wb[name1]
    ws.title = "销售明细python"
    wb.save('./src/处理数据.xlsx')
    #wb.close()

复制尺码

将i2-v2复制到i4-v4

name1 = wb.sheetnames[0]
    ws1 = wb[name1]
    ws1.title = "销售明细python"

    #将第二行尺码复制到第四行
    for i in range(9, 23):
        values = ws1.cell(2, i).value
        ws1.cell(5, i).value = values
    wb.save('./src/处理数据.xlsx')

第二步

删除前三行

#删除前四行
    # 删除第1行(索引从0开始)

    ws1.delete_rows(0, 4)
    wb.save('./src/处理数据.xlsx')

第三步

求和,行和加字段

https://www.cnblogs.com/cherishthepresent/p/17580255.html

第四步

求和,列和

# This is a sample Python script.

# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
from openpyxl import load_workbook


def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.


# Press the green button in the gutter to run the script.
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print_hi('PyCharm')
    # 加载工作簿
    wb = load_workbook('./src/原始数据.xlsx')
    # 获取sheet页,修改第一个sheet页面为
    name1 = wb.sheetnames[0]
    ws1 = wb[name1]
    ws1.title = "销售明细python"

    # 将第二行尺码复制到第四行
    for i in range(9, 23):
        values = ws1.cell(2, i).value
        ws1.cell(5, i).value = values
    # 删除前四行
    # 删除第1行(索引从0开始)
    ws1.delete_rows(0, 4)
    #wb.close()
    #增加合计字段
    ws1.cell(1, 23).value = '合计'
    min_row = ws1.min_row
    max_row = ws1.max_row
    min_col = ws1.min_column
    max_col = ws1.max_column
    #求行和
    for row in range(min_row + 2, max_row + 1):
        key = ws1.cell(row=row, column=max_col).coordinate
        # 求和的开始单元格地址
        start = ws1.cell(row=row, column=min_col + 1).coordinate
        # 求和的结束单元格地址
        end = ws1.cell(row=row, column=max_col - 1).coordinate
        ws1[key] = f'=SUM({start}:{end})'
    #求列和
    for col in range(min_col+8, max_col+1):
        key = ws1.cell(row=max_row+1, column=col).coordinate
        #求和开始单元格地址
        start = ws1.cell(row=min_row+1, column=col).coordinate
        #求和结束单元格地址
        end = ws1.cell(row=max_row, column=col).coordinate
        ws1[key] =  f'=SUM({start}:{end})'
    wb.save('./src/处理数据.xlsx')
# See PyCharm help at https://www.jetbrains.com/help/pycharm/

处理效果
在这里插入图片描述

第五步

修改格式

第六步

创建新sheet表,单款排名
对商品编号通过pandas进行聚类

数据处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1307104.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最新鸿蒙HarmonyOS4.0开发登陆的界面2

登陆功能 代码如下: import router from ohos.router; Entry Component struct Index {State message: string XXAPP登陆State userName: string ;State password: string ;build() {Row() {Column({space:50}) {Image($r(app.media.icon)).width(200).interpol…

《使用ThinkPHP6开发项目》 - 登录接口一

《使用ThinkPHP6开发项目》 - 安装ThinkPHP框架-CSDN博客 《使用ThinkPHP6开发项目》 - 设置项目环境变量-CSDN博客 《使用ThinkPHP6开发项目》 - 项目使用多应用开发-CSDN博客 《使用ThinkPHP6开发项目》 - 创建应用-CSDN博客 《使用ThinkPHP6开发项目》 - 创建控制器-CSD…

php 使用box打包

1.安装box 2.检查是否安装成功 3.查看路径,把路径添加到环境变量,方便使用 4.php项目根目录增加box.json配置文件 5.运行命令生成。这个是在cmd中运行的,记得切换到php源码目录 6.使用 php FastAdmin.phar运行。 说明:如果是常驻…

智能优化算法应用:基于布谷鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于布谷鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于布谷鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.布谷鸟算法4.实验参数设定5.算法结果6.参考文…

lwIP 细节之三:errf 回调函数是何时调用的

使用 lwIP 协议栈进行 TCP 裸机编程,其本质就是编写协议栈指定的各种回调函数。将你的应用逻辑封装成函数,注册到协议栈,在适当的时候,由协议栈自动调用,所以称为回调。 注:除非特别说明,以下内…

智选假日酒店大中华区迎来开业、在建500家里程碑

“90后”先锋品牌,智选假日酒店在华实现骄人突破,成就非凡 2023年12月12日,中国上海 — 洲际酒店集团今日宣布,旗下中高端精选服务品牌智选假日酒店迎来大中华区的开业和在建酒店数量突破500家这一发展里程碑。智选假日酒店凭借其…

如何利用供应商细分,更好管理供应商关系?

对于一些企业来说,与供应商关系密切,是避免过去几年供应链短缺、延误和价格上涨的关键。但对大多数企业来说,同等关注每个供应商是不可能的,而且成本高昂。 在这种情况下,企业可以使用供应商细分作为确定参与水平的策…

C语言实现在顺序表中找到最大值

用C语言实现在顺序表中找到最大值&#xff1a; #include <stdio.h> #define MAX_SIZE 100 int findMax(int arr[], int size) { int max arr[0]; // 假设第一个元素为最大值 for (int i 1; i < size; i) { // 从第二个元素开始遍历列表 if (…

mockjs 导致cesium地图无法加载

1.报错信息 Uncaught (in promise) TypeError: Failed to execute createImageBitmap on Window: The provided value is not of type (Blob or HTMLCanvasElement or HTMLImageElement or HTMLVideoElement or ImageBitmap or ImageData or OffscreenCanvas or SVGImageElemen…

Linux高级管理--安装MySQL数据库系统

MySQL服务基础 MySQL.是一个真正的多线程、多用户的SQL数据库服务&#xff0c;凭借其高性能、高可靠和易于使 用的特性&#xff0c;成为服务器领域中最受欢迎的开源数据库系统。在2008年以前&#xff0c;MySOL项目由MySQL AB公司进行开发&#xff0c;发布和支持&#xff0c;之后…

基于JAVA的汽车售票网站论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对汽车售票信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差…

串行计时芯片D1380/D1381,2.0V~5.5V 工作电流: 2V时 与TTL 兼容,采用DIP8、SOP8封装

D1380/D1381是一个带秒、分、时、日、日期、月、年的串行时钟保持芯片,每个月多少天以及闰年能自动调节, D1380/D1381低功耗工作方式, D1380/D1381用若干寄存器存储对应信息&#xff0c;一个32.768kHz 的晶振校准时钟&#xff0c;为了使用最小弓|脚&#xff0c;D1380/D1381使用…

jsp+servlet+图书交流平台 有filter过滤器

在线图书推荐与交流平台 随着数字化的进展和人们对持续学习的追求&#xff0c;在线资源变得越来越受欢迎。对于众多读者来说&#xff0c;找到合适的书籍和与其他读者交流阅读体验是非常有价值的。为了满足这一需求&#xff0c;我们提出了一个在线图书推荐与交流平台的设计。此…

这两个管理方法 在现货白银顺势交易中会用得上

我们常说&#xff0c;在现货白银交易中做顺势交易&#xff0c;那盈利的概率会高一些。但是这并不是说做顺势交易就肯定盈利&#xff0c;其实顺势交易也需要投资者去进行管理的&#xff0c;不要以为顺势交易入场之后就万事大吉了。那投资者该如何管理呢&#xff1f;下面我们就来…

H5开发App应用程序的常见问题以及解决方案

Hello大家好&#xff0c;我是咕噜铁蛋&#xff0c;天冷记得添衣&#xff0c;ok话说回来H5开发成为了一种流行的方式来构建跨平台的移动应用程序。然而&#xff0c;在H5开发App应用程序的过程中&#xff0c;我们常常会遇到一些问题&#xff0c;这些问题可能涉及性能、兼容性、用…

Editing Existing PDF Files in Java

Editing Existing PDF Files in Java 1. Overview In this article, we’ll see how to edit the content of an existing PDF file in Java. First, we’ll just add new content. Then, we’ll focus on removing or replacing some pre-existing content. 2. Adding the …

基于Java SSM框架实现大学生校园兼职系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现大学生兼职系统演示 摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;大学生校园兼职系统当然也不能排除在外。大学生校园兼职系统是以实际运用为开…

低压无功补偿在分布式光伏现场中的应用

摘要&#xff1a;分布式光伏电站由于建设时间短、技术成熟、收益明显而发展迅速&#xff0c;但光伏并网引起用户功率因数异常的问题也逐渐凸显。针对分布式光伏电站接入配电网后功率因数降低的问题&#xff0c;本文分析了低压无功补偿装置补偿失效的原因&#xff0c;并提出了一…

LeetCode(57)合并两个有序链表【链表】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 合并两个有序链表 1.题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4…

centos8stream 升级 sqlite3 ,解决 SQLite 3.27 or later is required (found 3.26.0).

服务器环境是centos8stream, 默认的sqlite是 3.26 &#xff0c;因此&#xff0c;需要升级。 sqlite官网&#xff1a;SQLite Download Page 1.从官网下载最新源码包 cd /opt/ wget https://www.sqlite.org/2023/sqlite-autoconf-3440200.tar.gz tar xvf sqlite-autoconf-344020…