• 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文件,内容如下:

    1. import pandas as pd
    2. import numpy as np
    3. # 读取原始 Excel 文件
    4. df = pd.read_excel('shanghaiTrailerFee.xlsx')
    5. print(df.head())
    6. # 选择第二行开始的数据,并每行复制 5 次
    7. df_copy = pd.DataFrame(np.repeat(df.iloc[0:, :].values, 5, axis=0), columns=df.columns)
    8. print('************************')
    9. # print(df_copy.shape[0])
    10. # print(df_copy.head())
    11. totalRow = df_copy.shape[0]
    12. print("总计行数为",totalRow)
    13. for i in range(totalRow):
    14. if i % 5 == 0 :
    15. df_copy.values[i][6] = df_copy.values[i][0]
    16. df_copy.values[i][7] = df_copy.values[i][1]
    17. df_copy.values[i][8] = 'CBM'
    18. df_copy.values[i][9] = 0
    19. df_copy.values[i][10] = 1
    20. if i % 5 == 1 :
    21. df_copy.values[i][6] = df_copy.values[i][0]
    22. df_copy.values[i][7] = df_copy.values[i][2]
    23. df_copy.values[i][8] = 'CBM'
    24. df_copy.values[i][9] = 2
    25. df_copy.values[i][10] = 5
    26. if i % 5 == 2 :
    27. df_copy.values[i][6] = df_copy.values[i][0]
    28. df_copy.values[i][7] = df_copy.values[i][3]
    29. df_copy.values[i][8] = 'CBM'
    30. df_copy.values[i][9] = 6
    31. df_copy.values[i][10] = 10
    32. if i % 5 == 3 :
    33. df_copy.values[i][6] = df_copy.values[i][0]
    34. df_copy.values[i][7] = df_copy.values[i][4]
    35. df_copy.values[i][8] = 'CBM'
    36. df_copy.values[i][9] = 11
    37. df_copy.values[i][10] = 20
    38. if i % 5 == 4 :
    39. df_copy.values[i][6] = df_copy.values[i][0]
    40. df_copy.values[i][7] = df_copy.values[i][5]
    41. df_copy.values[i][8] = 'CBM'
    42. df_copy.values[i][9] = 21
    43. df_copy.values[i][10] = 40
    44. df_copy.drop(df_copy.columns[[0,1,2,3,4,5]], axis=1, inplace=True)
    45. # 将处理后的数据保存到新的Excel文件中
    46. 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
  • 相关阅读:
    【python】数据加载与存储
    蓝桥杯1040
    产品经理的薪资待遇凭什么这么高?看完你就明白了
    深入了解HarmonyOS(鸿蒙操作系统)
    C++模板
    上传文件到七牛云并限制并发数量
    Scala的集合操作之可变数组和不可变数组,可变List集合与不可变List集合,可变Set与不可变Set操作,可变和不可变Map集合和元组操作
    IDEA设置方法分割线
    HTML5中自定义数据属性data-*属性(3)jq如何操作data-*
    第十四章《多线程》第7节:线程组
  • 原文地址:https://blog.csdn.net/luckywuxn/article/details/132683862