[英]Using xlrd to read selected columns and all rows in python
我想遍歷一個excel表並獲取一組列表或字典中每一行中選定列的值。 如果在字典中,則對於每一行,第一個選定列中的值將是鍵,而其他選定列中的值將是該鍵的值(數組)。 我無法弄清楚如何告訴python只從選定的列中讀取值...因為excel表可能有10列,但是例如,我只對三列感興趣,而感興趣的三列並不連續。 感謝您使用XLRD的見解。
import xlrd
from xlrd import open_workbook
import arcpy
wb = open_workbook ("c:\\Users\\Admin\\Documents\\Marion\\Courses\\GEOG485\\FinalProject\\Data\\ExcelFiles\\Belize_Culvert_Nov15_V4.0.xlsx")
sheet = wb.sheet_by_index(1)
keys = [sheet.cell(0, 5).value for col_index in xrange(sheet.ncols)]
dict_list = []
for rownum in range(sheet.nrows):
d = {keys[col_index]: sheet.cell(0, 5).value
for col_index in xrange(sheet.ncols)}:
dict_list.append(d)
我想用作鍵的字段是第5列,值是第16列和第17列,作為每個鍵的數組值...
使用此命令
row_slice(rowx, start_colx=0, end_colx=None)
返回給定行中的Cell對象的一部分。
您的代碼中的一些問題-
keys = [sheet.cell(0, 5).value for col_index in xrange(sheet.ncols)]
的值keys = [sheet.cell(0, 5).value for col_index in xrange(sheet.ncols)]
-這始終將鍵作為第一行和第六列中的值(行和列的索引為0。)
d = {keys[col_index]: sheet.cell(0, 5).value
這甚至不是有效的python語法
您可以遍歷所有行,將列索引4(第5列)作為鍵,將其余的索引添加到列表中,然后將其添加到字典中,例如-
import xlrd
from xlrd import open_workbook
import arcpy
wb = open_workbook ("c:\\Users\\Admin\\Documents\\Marion\\Courses\\GEOG485\\FinalProject\\Data\\ExcelFiles\\Belize_Culvert_Nov15_V4.0.xlsx")
sheet = wb.sheet_by_index(1)
sheetdict = {}
for rownum in range(sheet.nrows):
sheetdict[sheet.cell(rownum,4)] = [sheet.cell(rownum,15),sheet.cell(rownum,16)]
最后, sheetdict
具有必需的字典。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.