# 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] = 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、效果展示
| 地区 | 单价 | 计费单位 | 费用最小值 | 费用最大值 |
| 北京 | 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 |