当前位置: 首页 > news >正文

Python操作Excel实战:Excel行转列

# 1、原始数据准备

样例数据准备

地区1m³2-5m³6-10m³11-20m³21-40m³地区单价计费单位费用最小值费用最大值
北京13012011010090     
天津13012011010090     
石家庄13012011010090     
保定140130120110100     
张家口170150130120110     
邢台14012011010090     
邯郸140130120110100     
衡水140130120110100     
沧州13012011010090     
廊坊15013012010090     
唐山13012011010090     
秦皇岛14013012010090     
承德170150130120110     

#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、效果展示

地区单价计费单位费用最小值费用最大值
北京130CBM01
北京120CBM25
北京110CBM610
北京100CBM1120
北京90CBM2140
天津130CBM01
天津120CBM25
天津110CBM610
天津100CBM1120
天津90CBM2140
石家庄130CBM01
石家庄120CBM25
石家庄110CBM610
石家庄100CBM1120
石家庄90CBM2140
保定140CBM01
保定130CBM25
保定120CBM610
保定110CBM1120
保定100CBM2140
张家口170CBM01
张家口150CBM25
张家口130CBM610
张家口120CBM1120
张家口110CBM2140
邢台140CBM01
邢台120CBM25
邢台110CBM610
邢台100CBM1120
邢台90CBM2140
邯郸140CBM01
邯郸130CBM25
邯郸120CBM610
邯郸110CBM1120
邯郸100CBM2140
衡水140CBM01
衡水130CBM25
衡水120CBM610
衡水110CBM1120
衡水100CBM2140
沧州130CBM01
沧州120CBM25
沧州110CBM610
沧州100CBM1120
沧州90CBM2140
廊坊150CBM01
廊坊130CBM25
廊坊120CBM610
廊坊100CBM1120
廊坊90CBM2140
唐山130CBM01
唐山120CBM25
唐山110CBM610
唐山100CBM1120
唐山90CBM2140
秦皇岛140CBM01
秦皇岛130CBM25
秦皇岛120CBM610
秦皇岛100CBM1120
秦皇岛90CBM2140
承德170CBM01
承德150CBM25
承德130CBM610
承德120CBM1120
承德110CBM2140
http://www.lryc.cn/news/154342.html

相关文章:

  • java实现迭代器模式
  • C++day7模板、异常、auto关键字、lambda表达式、数据类型转换、STL、list、文件操作
  • 【校招VIP】产品分析之活动策划宣传
  • node基础之一:fs 模块
  • 如何快速搭建母婴行业的微信小程序?
  • 【科普向】Jmeter 如何测试接口保姆式教程
  • 阿里云2核4G服务器5M带宽5年费用价格明细表
  • 【图解RabbitMQ-2】图解JMS规范与AMQP协议是什么
  • springboot整合mybatis实现增删改查(xml)--项目阶段1
  • springboot文件上传异步报错
  • error: unable to unlink old ‘.gitlab-ci.yml‘: Permission denied
  • AJAX学习笔记3练习
  • springboot实战(五)之sql业务日志输出,重要
  • redis7.2.0 centos源码编译安装并设置开机自启动
  • 网易低代码引擎Tango正式开源
  • Apache Linkis 与 OceanBase 集成:实现数据分析速度提升
  • EXPLAIN概述与字段剖析
  • 基于Java IO 序列化方案的memcached-session-manager多memcached节点配置
  • LinkedList(3):并发异常
  • vue里el-form+el-table实现验证规则的写法
  • K8S 基础概念学习
  • Java之正则表达式的详细解析
  • 移动端的屏幕分辨率与浏览器的视口宽度(视口大小)是两回事儿
  • 分布式 - 服务器Nginx:基础系列之Nginx静态资源优化配置指令sendfile | tcp_nopush | tcp_nodelay
  • Sentinel配置的blockHandler方法不生效
  • Mybatis的三种映射关系以及联表查询
  • 基于串口校时的数字钟设计
  • 支持向量机(二)
  • Arrays.asList 和 null 类型
  • 《论文阅读》用提示和释义模拟对话情绪识别的思维过程 IJCAI 2023