Python操作Excel实战:Excel行转列
# 1、原始数据准备
样例数据准备
| 地区 | 1m³ | 2-5m³ | 6-10m³ | 11-20m³ | 21-40m³ | 地区 | 单价 | 计费单位 | 费用最小值 | 费用最大值 |
| 北京 | 130 | 120 | 110 | 100 | 90 | |||||
| 天津 | 130 | 120 | 110 | 100 | 90 | |||||
| 石家庄 | 130 | 120 | 110 | 100 | 90 | |||||
| 保定 | 140 | 130 | 120 | 110 | 100 | |||||
| 张家口 | 170 | 150 | 130 | 120 | 110 | |||||
| 邢台 | 140 | 120 | 110 | 100 | 90 | |||||
| 邯郸 | 140 | 130 | 120 | 110 | 100 | |||||
| 衡水 | 140 | 130 | 120 | 110 | 100 | |||||
| 沧州 | 130 | 120 | 110 | 100 | 90 | |||||
| 廊坊 | 150 | 130 | 120 | 100 | 90 | |||||
| 唐山 | 130 | 120 | 110 | 100 | 90 | |||||
| 秦皇岛 | 140 | 130 | 120 | 100 | 90 | |||||
| 承德 | 170 | 150 | 130 | 120 | 110 |
#2、python脚本编写,新建app.py文件,内容如下:
import pandas as pd
import numpy as np# 读取原始 Excel 文件
df = pd.read_excel('shanghaiTrailerFee.xlsx')print(df.head())# 选择第二行开始的数据,并每行复制 5 次
df_copy = pd.DataFrame(np.repeat(df.iloc[0:, :].values, 5, axis=0), columns=df.columns)print('************************')# print(df_copy.shape[0])# print(df_copy.head())totalRow = df_copy.shape[0]
print("总计行数为",totalRow)
for i in range(totalRow):if i % 5 == 0 :df_copy.values[i][6] = df_copy.values[i][0]df_copy.values[i][7] = df_copy.values[i][1]df_copy.values[i][8] = 'CBM'df_copy.values[i][9] = 0df_copy.values[i][10] = 1if i % 5 == 1 :df_copy.values[i][6] = df_copy.values[i][0]df_copy.values[i][7] = df_copy.values[i][2]df_copy.values[i][8] = 'CBM'df_copy.values[i][9] = 2df_copy.values[i][10] = 5if i % 5 == 2 :df_copy.values[i][6] = df_copy.values[i][0]df_copy.values[i][7] = df_copy.values[i][3]df_copy.values[i][8] = 'CBM'df_copy.values[i][9] = 6df_copy.values[i][10] = 10if i % 5 == 3 :df_copy.values[i][6] = df_copy.values[i][0]df_copy.values[i][7] = df_copy.values[i][4]df_copy.values[i][8] = 'CBM'df_copy.values[i][9] = 11df_copy.values[i][10] = 20if i % 5 == 4 :df_copy.values[i][6] = df_copy.values[i][0]df_copy.values[i][7] = df_copy.values[i][5]df_copy.values[i][8] = 'CBM'df_copy.values[i][9] = 21df_copy.values[i][10] = 40df_copy.drop(df_copy.columns[[0,1,2,3,4,5]], axis=1, inplace=True) # 将处理后的数据保存到新的Excel文件中
df_copy.to_excel('new_shanghaiTrailerFee.xlsx', index=False)
# 3、执行python app.py
# 4、效果展示
| 地区 | 单价 | 计费单位 | 费用最小值 | 费用最大值 |
| 北京 | 130 | CBM | 0 | 1 |
| 北京 | 120 | CBM | 2 | 5 |
| 北京 | 110 | CBM | 6 | 10 |
| 北京 | 100 | CBM | 11 | 20 |
| 北京 | 90 | CBM | 21 | 40 |
| 天津 | 130 | CBM | 0 | 1 |
| 天津 | 120 | CBM | 2 | 5 |
| 天津 | 110 | CBM | 6 | 10 |
| 天津 | 100 | CBM | 11 | 20 |
| 天津 | 90 | CBM | 21 | 40 |
| 石家庄 | 130 | CBM | 0 | 1 |
| 石家庄 | 120 | CBM | 2 | 5 |
| 石家庄 | 110 | CBM | 6 | 10 |
| 石家庄 | 100 | CBM | 11 | 20 |
| 石家庄 | 90 | CBM | 21 | 40 |
| 保定 | 140 | CBM | 0 | 1 |
| 保定 | 130 | CBM | 2 | 5 |
| 保定 | 120 | CBM | 6 | 10 |
| 保定 | 110 | CBM | 11 | 20 |
| 保定 | 100 | CBM | 21 | 40 |
| 张家口 | 170 | CBM | 0 | 1 |
| 张家口 | 150 | CBM | 2 | 5 |
| 张家口 | 130 | CBM | 6 | 10 |
| 张家口 | 120 | CBM | 11 | 20 |
| 张家口 | 110 | CBM | 21 | 40 |
| 邢台 | 140 | CBM | 0 | 1 |
| 邢台 | 120 | CBM | 2 | 5 |
| 邢台 | 110 | CBM | 6 | 10 |
| 邢台 | 100 | CBM | 11 | 20 |
| 邢台 | 90 | CBM | 21 | 40 |
| 邯郸 | 140 | CBM | 0 | 1 |
| 邯郸 | 130 | CBM | 2 | 5 |
| 邯郸 | 120 | CBM | 6 | 10 |
| 邯郸 | 110 | CBM | 11 | 20 |
| 邯郸 | 100 | CBM | 21 | 40 |
| 衡水 | 140 | CBM | 0 | 1 |
| 衡水 | 130 | CBM | 2 | 5 |
| 衡水 | 120 | CBM | 6 | 10 |
| 衡水 | 110 | CBM | 11 | 20 |
| 衡水 | 100 | CBM | 21 | 40 |
| 沧州 | 130 | CBM | 0 | 1 |
| 沧州 | 120 | CBM | 2 | 5 |
| 沧州 | 110 | CBM | 6 | 10 |
| 沧州 | 100 | CBM | 11 | 20 |
| 沧州 | 90 | CBM | 21 | 40 |
| 廊坊 | 150 | CBM | 0 | 1 |
| 廊坊 | 130 | CBM | 2 | 5 |
| 廊坊 | 120 | CBM | 6 | 10 |
| 廊坊 | 100 | CBM | 11 | 20 |
| 廊坊 | 90 | CBM | 21 | 40 |
| 唐山 | 130 | CBM | 0 | 1 |
| 唐山 | 120 | CBM | 2 | 5 |
| 唐山 | 110 | CBM | 6 | 10 |
| 唐山 | 100 | CBM | 11 | 20 |
| 唐山 | 90 | CBM | 21 | 40 |
| 秦皇岛 | 140 | CBM | 0 | 1 |
| 秦皇岛 | 130 | CBM | 2 | 5 |
| 秦皇岛 | 120 | CBM | 6 | 10 |
| 秦皇岛 | 100 | CBM | 11 | 20 |
| 秦皇岛 | 90 | CBM | 21 | 40 |
| 承德 | 170 | CBM | 0 | 1 |
| 承德 | 150 | CBM | 2 | 5 |
| 承德 | 130 | CBM | 6 | 10 |
| 承德 | 120 | CBM | 11 | 20 |
| 承德 | 110 | CBM | 21 | 40 |
相关文章:
Python操作Excel实战:Excel行转列
# 1、原始数据准备 样例数据准备 地区1m2-5m6-10m11-20m21-40m地区单价计费单位费用最小值费用最大值北京13012011010090 天津13012011010090 石家庄13012011010090 保定140130120110100 张家口170150130120110 邢台1401201101…...
java实现迭代器模式
迭代器模式(Iterator Pattern)是一种行为型设计模式,它提供一种方法来顺序访问一个聚合对象(如列表、集合、数组等)中的元素,而不暴露聚合对象的内部表示。迭代器模式通常包括以下角色:迭代器&a…...
C++day7模板、异常、auto关键字、lambda表达式、数据类型转换、STL、list、文件操作
作业 封装一个学生的类,定义一个学生这样类的vector容器, 里面存放学生对象(至少3个) 再把该容器中的对象,保存到文件中。 再把这些学生从文件中读取出来,放入另一个容器中并且遍历输出该容器里的学生。 #include …...
【校招VIP】产品分析之活动策划宣传
考点介绍: 产品的上线运营是非常重要的。应该来说好的产品都是运营出来的,在一运营过程中难免会依靠策划活动来提高产品知名度、用户数。用户粘度等等指标一,如何策划一个成功的活动就显得非常重要。 产品分析之活动策划宣传-相关题目及解析…...
node基础之一:fs 模块
概念:文件的创建、删除、重命名、移动、写入、读取等 const fs require("fs");// 写入 fs.writeFile("./demo.txt", "hello", (err) > {}); fs.writeFileSync();// 追加 fs.appendFile("./demo.txt", "hello&quo…...
如何快速搭建母婴行业的微信小程序?
如果你想为你的母婴行业打造一个独特的小程序,但没有任何编程经验,别担心!现在有许多小程序制作平台提供了简单易用的工具,让你可以轻松地建立自己的小程序。接下来,我将为你详细介绍搭建母婴行业小程序的步骤。 首先&…...
【科普向】Jmeter 如何测试接口保姆式教程
现在对测试人员的要求越来越高,不仅仅要做好功能测试,对接口测试的需求也越来越多!所以也越来越多的同学问,怎样才能做好接口测试? 要真正的做好接口测试,并且弄懂如何测试接口,需要从如下几个…...
阿里云2核4G服务器5M带宽5年费用价格明细表
阿里云2核4G服务器5M带宽可以选择轻量应用服务器或云服务器ECS,轻量2核4G4M带宽服务器297元一年,2核4G云服务器ECS可以选择计算型c7、c6或通用算力型u1实例等,买5年可以享受3折优惠,阿腾云分享阿里云服务器2核4G5M带宽五年费用表&…...
【图解RabbitMQ-2】图解JMS规范与AMQP协议是什么
🧑💻作者名称:DaenCode 🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…...
springboot整合mybatis实现增删改查(xml)--项目阶段1
目录 一、前言 二、创建项目 创建MySQL数据库和表 创建springboot项目 本文总体代码结构图预览 三、编写代码 (一)新建实体层属性类 (二)新建数据层mapper接口 (三)新建mapper的映射SQL(…...
springboot文件上传异步报错
因为迁移的生产环境,在新的服务器发生了之前没有遇到的问题,这种问题是在异步文件上传的时候才会出现 错误信息如下 16:17:50.009 ERROR c.w.einv.minio.service.impl.MinioFileServiceImpl - 文件上传错误! java.io.FileNotFoundException: /applicati…...
error: unable to unlink old ‘.gitlab-ci.yml‘: Permission denied
#gitlab-runner 执行代码git pull origin xxx 更新时候报 error: unable to unlink old ‘.gitlab-ci.yml’: Permission denied 问题环境:centos 部署gitlab-runner 执行脚本方式 选的shell 产生问题的原因:gitlab-runner程序进程占用锁定了.gitlab-ci…...
AJAX学习笔记3练习
AJAX学习笔记2发送Post请求_biubiubiu0706的博客-CSDN博客 1.验证用户名是否可用 需求,用户输入用户名,失去焦点-->onblur失去焦点事件,发送AJAX POST请求,验证用户名是否可用 新建表 前端页面 WEB-INF下新建lib包引入依赖,要用JDBC 后端代码 package com.web;import jav…...
springboot实战(五)之sql业务日志输出,重要
目录 环境: 一、mybatis-plus之sql分析日志输出 1.配置 2.验证 3.高级输出方式 二、业务日志输出到文件 1.添加log4j2依赖 2.排除logback依赖 3.新增log4j2的配置文件 4.添加配置 5.启动测试 6.给日志请求加个id 6.1、过滤器filter实现 6.2、测试 6.3、…...
redis7.2.0 centos源码编译安装并设置开机自启动
下载源码包 wget https://github.com/redis/redis/archive/7.2.0.tar.gz tar -zxf 7.2.0.tar.gz 编译编码 编译编码 cd redis-7.2.0 make && make install 此时默认redis-server redis-cli等命令行安装到目录/usr/local/bin/目录中。 如果你想安装命令行到指定目录中你…...
网易低代码引擎Tango正式开源
一、Tango简介 Tango 是一个用于快速构建低代码平台的低代码设计器框架,借助 Tango 只需要数行代码就可以完成一个基本的低代码平台前端系统的搭建。Tango 低代码设计器直接读取前端项目的源代码,并以源代码为中心,执行和渲染前端视图,并为用户提供低代码可视化搭建能力,…...
Apache Linkis 与 OceanBase 集成:实现数据分析速度提升
导语:恭喜 OceanBase 生态全景图中又添一员,Apache Linkis 构建了一个计算中间件层,以促进上层应用程序和底层数据引擎之间的连接、治理和编排。 近日,计算中间件 Apache Linkis 在其新版本中通过数据源功能,支持用户通…...
EXPLAIN概述与字段剖析
6. 分析查询语句:EXPLAIN(重点) 6.1 概述 定位了查询慢的sQL之后,我们就可以使用EXPLAIN或DESCRIBE 工具做针对性的分析查询语句。DESCRIBE语句的使用方法与EXPLAIN语句是一样的,并且分析结果也是一样的。 MySQL中有专门负责优化SELECT语句…...
基于Java IO 序列化方案的memcached-session-manager多memcached节点配置
session的序列化方案官方推荐的有4种 java serializationmsm-kryo-serializermsm-javolution-serializermsm-xstream-serializer 关于这几种,官方也给出了比较: Java serialization is very robust and a proven technology. The biggest disadvantage IMHO is th…...
LinkedList(3):并发异常
1 LinkedList并发异常 package com.example.demo;import java.util.Iterator; import java.util.LinkedList;public class TestLinkedList {public static void main(String[] args) {LinkedList linkedList new LinkedList(); //双向链表linkedList.add(11);linkedList.add(…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...
