使用python查找工作表中单元格的索引值

2024-10-16 20:49:08 发布

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

Product Name
SET I Violations 
Rule 1   0 
Rule 2   5 
Rule 3   0
Total    5

SET II Violations 
Rule 1   2
Rule 2   1 
Rule 3   1 
Total    4

SET III Violations
Rule 1    0 
Rule 2    0 
Rule 3    2 
Total     2

我想找到一个包含集合I,集合II,集合III,集合IV和总计的单元格索引。。就像在上面的例子中,设置I为1,0,总计为5,0。。。规则是不固定的,它们可以增加或减少

我尝试了以下代码:

^{pr2}$

上述代码给出以下错误: AttributeError:“list”对象没有属性“row”


Tags: 代码name规则错误productrule例子iii
3条回答

您需要printrow_num,由于if条件,列索引将为0

import xlrd
import xlwt
from xlwt import Workbook
wb = xlrd.open_workbook('test.xls')
sheet = wb.sheet_by_index(0)
for row_num in range(sheet.nrows):
    row_value = sheet.row_values(row_num)
    if row_value[0].startswith('SET') :
        #because of if condition column index will be 0
        print (row_num,0)

如果索引不是固定的,则可以打印值为'SET'的元素的索引

^{pr2}$

由于要检查“Rule”和“Total”的值位于列索引0,因此可以直接打印0

import xlrd
wb = xlrd.open_workbook('test.xls')
sheet = wb.sheet_by_index(0)
for row_num in range(sheet.nrows):
    row_value = sheet.row_values(row_num)
    if row_value[0].startswith('SET') :
        print(row_value[0],'-(row,col): ',row_num,",0",sep='')
    if row_value[0].startswith('Total') :
        print(row_value[0],'-(row,col): ',row_num,",0",sep='')

  >>
SET I-(row,col): 1,0
Total-(row,col): 5,0
SET II-(row,col): 7,0
Total-(row,col): 11,0
SET III-(row,col): 13,0
Total-(row,col): 17,0

假设您阅读了使用pandas之后df是这样的:

df=pd.read_excel(file)
print(df)

^{pr2}$

然后您可以使用^{}如下,并调用True行的索引。在

df[df.Product.str.startswith('SET')].index
#Int64Index([0, 5, 10], dtype='int64')

相关问题 更多 >