Python操作Excel实战:Excel行转列

news/2024/7/21 7:54:23 标签: python, 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文件,内容如下:

python">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] = 0
       df_copy.values[i][10] = 1
   if 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] = 2
       df_copy.values[i][10] = 5
   if 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] = 6
       df_copy.values[i][10] = 10
   if 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] = 11
       df_copy.values[i][10] = 20
   if 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] = 21
       df_copy.values[i][10] = 40
        

df_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.niftyadmin.cn/n/5000800.html

相关文章

【 Tkinter界面-练习03】实现动画

一、说明 在本教程中,我们将学习Python Tkinter Animation。在这里,我们将了解如何在 python 中使用 Tkinter 创建动画,并将介绍与动画相关的不同示例。我们还将讨论这些主题 二、Python Tkinter 动画 在本节中,我们将学习 Python…

【网络安全带你练爬虫-100练】第22练:数据包中参数提取与处理

目录 一、目标1:GET数据包的处理 1、GET数据包中参数的提取 2、GET请求中 统计参数个数 二、目标2:POST数据包的处理 1、post中参数个数的提取 2、POST请求中 统计参数个数 一、目标1:GET数据包的处理 1、GET数据包中参数的提取 impo…

Vue.js 报错:Cannot read property ‘validate‘ of undefined“

错误解决 起因,是我将elemnt-ui登录,默认放在mounted()函数里面,导致vue初始化就调用这个函数。 找了网上,有以下错误原因: 1.一个是你ref写错了,导致获取不了这个表单dom,我这显然不是。 2.…

【广州华锐互动】利用AR远程指导系统进行机械故障排查,实现远程虚拟信息互动

随着工业自动化和智能化的不断发展,机械故障诊断已经成为了工业生产中的重要环节。为了提高故障诊断的准确性和效率,近年来,AR(增强现实)远程协助技术逐渐应用于机械故障诊断领域。本文将探讨AR远程协助技术在机械故障…

【技术分享】RK Android11系统SD卡启动方法

本文基于Purple Pi OH 3566主板,介绍Android11源码的修改,获得可从SD卡启动的Android11系统镜像。 Purple Pi OH作为一款兼容树莓派的开源主板,采用瑞芯微RK3566 (Cortex-A55) 四核64位超强CPU,主频最高达1.8 GHz,算力高达1Tops,…

python opencv

保存直播流生存逐个图片 import cv2 from threading import Threadclass ThreadedCamera(object):def __init__(self, source 0):self.capture cv2.VideoCapture(source)self.thread Thread(target self.update, args ())self.thread.daemon Trueself.thread.start()sel…

AskIt: Unified Programming Interface for Programming with Large Language Models

本文是LLM系列文章,针对《AskIt: Unified Programming Interface for Programming with Large Language Models》的翻译。 AskIt:用于大型语言模型编程的统一编程接口 摘要1 引言2 动机例子3 设计与实现4 实验评估5 相关工作6 结论 摘要 在不断发展的软…

搭建在线企业wiki——让您的企业wiki可以随身携带

搭建在线企业Wiki是一个方便且高效的方式来组织和共享企业知识。在这篇文章中,我们将探讨如何搭建一个在线企业Wiki,并且使其可以随身携带。 一、了解企业Wiki的概念和优势 企业Wiki是一种集体智慧的知识管理工具,它允许员工协作创建和编辑…