簡體   English   中英

python從excel創建字典

[英]python creating dictionary from excel

我有一個 2 列的 excel 表。 第 1 列是姓名,第 2 列是年齡。 我想創建一個字典,其中名稱是鍵,年齡是值。 這是代碼,但它錯誤地創建了字典。

keyValues = [x.value for x in worksheet.col(0)]
data = dict((x, []) for x in keyValues)
while curr_row < num_rows:
        curr_row += 1
        for row_index in range(1, worksheet.nrows):  data[keyValues[row_index]].append(worksheet.cell_value(curr_row, 1))

我想要一個像下面這樣來自 2 列 excel 表的字典。

{'Ann': 12, 'Maria': 3, 'Robin': 4, 'NameN':N} 

對熊貓來說這很簡單:

import pandas as pd
my_dic = pd.read_excel('names.xlsx', index_col=0).to_dict()

my_dic 現在是:

{'羅賓':4,'瑪麗亞':3,'安':12}

index_col=0如果 'name' 在你的 excel 文件的第一列

如果您的列不包含姓名和年齡以外的任何數據,並且您對數據質量非常有信心(年齡應該是非數字數據等),那么您可以這樣做:

names = (name.value for name in worksheet.col(0))
ages = (int(age.value) for age in worksheet.col(1))
data = dict(zip(names, ages))

如果你想保證訂單,你可以使用一個collections.OrderedDict為對象data ,而不是香草字典。

如果您需要處理錯誤數據(即有人在工作表中輸入字符串而不是整數年齡),您可能需要提出namesages生成器對象的自定義實現(上述假設一帆風順)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM