如何将数据从Excel输入Python字典?

2024-05-19 08:10:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码:

import openpyxl
workbook = openpyxl.load_workbook('master.xlsx')
worksheet = workbook.worksheets[0]
result = {}
for k, v in zip(worksheet['A'], worksheet['B']):
    result[k.internal_value] = v.internal_value
 print(result)

我得到的输出:

{'PPPPP': '22', 'bbbbb': '20', 'ccccc': '30', 'ddddd': '40', 'eeeee': '50'}

Excel文件:

enter image description here

我想要的输出:

{'PPPPP': ['22','10'], 'bbbbb': ['20','30'], 'ccccc': ['30','30'], 'ddddd': '40', 'eeeee': '50'}

Tags: 代码importmastervalueloadresultworkbookinternal
2条回答

使用默认值为空列表的defaultdict,并附加每个新值:

from collections import defauldict
import openpyxl
workbook = openpyxl.load_workbook('master.xlsx')
worksheet = workbook.worksheets[0]
result = defaultdict(list)
for k, v in zip(worksheet['A'], worksheet['B']):
    result[k.internal_value].append(v.internal_value)
 print(result)

这里的每个结果都是一个列表,即使只有一个值。e、 g.您将得到'ddddd': ['40'],但您应该能够一致地处理所有键值对

您可以使用pandas来完成它

import pandas as pd
df = pd.read_excel('master.xlsx', 0, None, ['A', 'B'])
result = {}
for x, y in zip(df['A'], df['B']):
    if x in result:
        result[x] = [result.get(x)]
        result[x].append(str(y))
    else:
        result[x] = str(y)
print(result)
{'ppp': ['10', '22'], 'bbb': ['20', '30'], 'ccc': ['30', '30'], 'ddd': '40', 'eee': '50'}

相关问题 更多 >

    热门问题