簡體   English   中英

使用xlrd讀取python中的選定列和所有行

[英]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對象的一部分。

您的代碼中的一些問題-

  1. 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。)

  2. 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.

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