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] = 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道法自然 实事求是

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值