• [excel与dict] python 读取excel内容并放入字典、将字典内容写入 excel文件


    一 读取excel内容、并放入字典

    1 读取excel文件

    1. import pandas as pd
    2. file_path = '/cluster/home3/zjc/Code/COD/BGNet_My/Dy_BGNet_master/openpyxl-light.xlsx' 读取excel
    3. raw_data = pd.read_excel(file_path, header=0) # header=0表示第一行是表头,就自动去除了
    4. print(raw_data) # 读取到的结果如下
    5. '''
    6. 读取excel
    7. (Pdb) raw_data
    8. num name wfm
    9. 0 0 COD10K-CAM-1-Aquatic-1-BatFish-2.png 0.899108
    10. 1 1 COD10K-CAM-1-Aquatic-1-BatFish-4.png 0.885333
    11. 2 2 COD10K-CAM-1-Aquatic-1-BatFish-5.png 0.899334
    12. 3 3 COD10K-CAM-1-Aquatic-1-BatFish-6.png 0.503472
    13. 4 4 COD10K-CAM-1-Aquatic-10-LeafySeaDragon-416.png 0.422056
    14. ... ... ... ...
    15. 2021 2021 COD10K-CAM-5-Other-69-Other-5051.png 0.973371
    16. 2022 2022 COD10K-CAM-5-Other-69-Other-5059.png 0.745310
    17. 2023 2023 COD10K-CAM-5-Other-69-Other-5060.png 0.000198
    18. 2024 2024 COD10K-CAM-5-Other-69-Other-5062.png 0.835672
    19. 2025 2025 COD10K-CAM-5-Other-69-Other-5063.png 0.982474
    20. '''

    2 读取value,舍弃行号

    1. data = raw_data.values # 获取其中内容(num、name、wfm)(舍弃行号)
    2. print(data)
    3. '''
    4. 仅展示value,舍弃行号
    5. array([[0, 'COD10K-CAM-1-Aquatic-1-BatFish-2.png', 0.8991082232693329],
    6. [1, 'COD10K-CAM-1-Aquatic-1-BatFish-4.png', 0.8853328644290668],
    7. [2, 'COD10K-CAM-1-Aquatic-1-BatFish-5.png', 0.8993339821090026],
    8. ...,
    9. [2023, 'COD10K-CAM-5-Other-69-Other-5060.png',
    10. 0.0001984435470317607],
    11. [2024, 'COD10K-CAM-5-Other-69-Other-5062.png', 0.8356721476832216],
    12. [2025, 'COD10K-CAM-5-Other-69-Other-5063.png', 0.9824740778028651]],
    13. dtype=object)
    14. '''

    3 读取为字典

    1. dict = {}
    2. for i in range(len(data)):
    3. dict[data[i][1]] = data[i][2]
    4. print(dict)
    5. '''
    6. 将下面数据放入字典
    7. data[0][1] -> 'COD10K-CAM-1-Aquatic-1-BatFish-2.png'
    8. data[0][2] -> 0.8991082232693329
    9. 字典为
    10. dict['COD10K-CAM-1-Aquatic-1-BatFish-2.png']
    11. -> 0.8991082232693329
    12. '''

    一 读取excel内容、并放入字典(完整代码)

    1. import pandas as pd
    2. file_path = '/cluster/home3/zjc/Code/COD/BGNet_My/Dy_BGNet_master/openpyxl-light.xlsx'
    3. # r对路径进行转义,windows需要
    4. raw_data = pd.read_excel(file_path, header=0) # header=0表示第一行是表头,就自动去除了
    5. print(raw_data)
    6. '''
    7. 读取excel
    8. (Pdb) raw_data
    9. num name wfm
    10. 0 0 COD10K-CAM-1-Aquatic-1-BatFish-2.png 0.899108
    11. 1 1 COD10K-CAM-1-Aquatic-1-BatFish-4.png 0.885333
    12. 2 2 COD10K-CAM-1-Aquatic-1-BatFish-5.png 0.899334
    13. 3 3 COD10K-CAM-1-Aquatic-1-BatFish-6.png 0.503472
    14. 4 4 COD10K-CAM-1-Aquatic-10-LeafySeaDragon-416.png 0.422056
    15. ... ... ... ...
    16. 2021 2021 COD10K-CAM-5-Other-69-Other-5051.png 0.973371
    17. 2022 2022 COD10K-CAM-5-Other-69-Other-5059.png 0.745310
    18. 2023 2023 COD10K-CAM-5-Other-69-Other-5060.png 0.000198
    19. 2024 2024 COD10K-CAM-5-Other-69-Other-5062.png 0.835672
    20. 2025 2025 COD10K-CAM-5-Other-69-Other-5063.png 0.982474
    21. '''
    22. data = raw_data.values
    23. print(data)
    24. '''
    25. 仅展示value,舍弃行号
    26. array([[0, 'COD10K-CAM-1-Aquatic-1-BatFish-2.png', 0.8991082232693329],
    27. [1, 'COD10K-CAM-1-Aquatic-1-BatFish-4.png', 0.8853328644290668],
    28. [2, 'COD10K-CAM-1-Aquatic-1-BatFish-5.png', 0.8993339821090026],
    29. ...,
    30. [2023, 'COD10K-CAM-5-Other-69-Other-5060.png',
    31. 0.0001984435470317607],
    32. [2024, 'COD10K-CAM-5-Other-69-Other-5062.png', 0.8356721476832216],
    33. [2025, 'COD10K-CAM-5-Other-69-Other-5063.png', 0.9824740778028651]],
    34. dtype=object)
    35. '''
    36. dict = {}
    37. for i in range(len(data)):
    38. dict[data[i][1]] = data[i][2]
    39. print(dict)
    40. '''
    41. 将下面数据放入字典
    42. data[0][1] -> 'COD10K-CAM-1-Aquatic-1-BatFish-2.png'
    43. data[0][2] -> 0.8991082232693329
    44. 字典为
    45. dict['COD10K-CAM-1-Aquatic-1-BatFish-2.png']
    46. -> 0.8991082232693329
    47. '''
    48. import pdb
    49. pdb.set_trace()

    二、将字典内容写入 excel文件

    1

    假设已有字典内容为:
    即student列表里有4个字典,
    第一个字典里面有3对key-value
    "num": 1,
    "name": "cod1",
    "wfm": 0.1

    1. student = [
    2. {"num": 1, "name": "cod1", "wfm": 0.1},
    3. {"num": 2, "name": "cod2", "wfm": 0.2},
    4. {"num": 3, "name": "cod3", "wfm": 0.3},
    5. {"num": 4, "name": "cod4", "wfm": 0.4},
    6. ]

    2 导入Workbook并实力化

    1. from openpyxl import Workbook
    2. workbook = Workbook()

    3 激活sheet-设置sheet名-插入标题-

    1. # 默认sheet
    2. sheet = workbook.active # 激活sheet
    3. sheet.title = "openpyxl" # 设置sheet名字
    4. sheet.append(["num", "name", "wfm"]) # 插入标题
    5. for data in student: # 列表循环读取dict
    6. sheet.append(list(data.values()))
    7. workbook.save("openpyxl.xlsx")

    二、将字典内容写入 excel文件(完整代码)

    1. student = [
    2. {"num": 1, "name": "cod1", "wfm": 0.1},
    3. {"num": 2, "name": "cod2", "wfm": 0.2},
    4. {"num": 3, "name": "cod3", "wfm": 0.3},
    5. {"num": 4, "name": "cod4", "wfm": 0.4},
    6. ]
    7. import pdb
    8. pdb.set_trace()
    9. from openpyxl import Workbook
    10. workbook = Workbook()
    11. # 默认sheet
    12. sheet = workbook.active # 激活sheet
    13. sheet.title = "openpyxl" # 设置sheet名字
    14. sheet.append(["num", "name", "wfm"]) # 插入标题
    15. for data in student: # 列表循环读取dict
    16. sheet.append(list(data.values()))
    17. workbook.save("openpyxl.xlsx")

  • 相关阅读:
    自然常数与欧拉公式
    .Net Core 依赖注入(IOC) 一些简单的使用技巧
    学习Opencv(蝴蝶书/C++)——1. 前言 和 第1章.概述
    tensor补充
    用idea debug时,怎么在某个map对象中再加个key value
    知乎转发最高的 Java 面试成神笔记,GitHub 已下载量已过百万
    设计模式-策略模式
    抽象工厂模式 创建性模式之五
    Kubernetes二进制(单master)部署
    语音信号处理-基础(五):傅立叶变换【离散傅里叶变换(DFT)、O(n^2)】【快速傅里叶变换(FFT)、O(nlogn)】、【短时傅里叶变换(STFT)】
  • 原文地址:https://blog.csdn.net/zjc910997316/article/details/134373487