Python 删除工作表中的行

Python 删除工作表中的行,python,openpyxl,Python,Openpyxl,我正在尝试从带有索引的工作表中删除整行。我这样做是因为我正在尝试3sigma剪裁方法。这是我的密码: import openpyxl from statistics import mean, stdev wb=openpyxl.load_workbook('try1.xlsx') sheet=wb.get_sheet_by_name('Blad1') v = [] for i in range(1,555): v.append(sheet['T'][i].value) m = mea

我正在尝试从带有索引的工作表中删除整行。我这样做是因为我正在尝试3sigma剪裁方法。这是我的密码:

import openpyxl
from statistics import mean, stdev

wb=openpyxl.load_workbook('try1.xlsx')

sheet=wb.get_sheet_by_name('Blad1')

v = []
for i in range(1,555):
  v.append(sheet['T'][i].value)

m = mean(v)
s = 3* stdev(v)
# clipping in the list BUT i dont know how to delete a row from a worksheet
for i in range(0,len(v)-1):
#if the value is more then 3 sigma (=s) away from the mean, i want to delete the whole row 
# of information
  if v[i] >= m+ s or v[i] <= m-s:
    # tryin to delete row 'Ai':'Zi'
    sheet.delete(sheet[['A'][i]:['Z'][i]])
    
导入openpyxl
从统计数据导入平均值,stdev
wb=openpyxl.load_工作簿('try1.xlsx')
sheet=wb。通过名称(“Blad1”)获取工作表
v=[]
对于范围内的i(1555):
v、 追加(表['T'][i].值)
m=平均值(v)
s=3*stdev(v)
#剪切列表,但我不知道如何从工作表中删除行
对于范围(0,len(v)-1)内的i:
#如果该值距离平均值超过3 sigma(=s),我想删除整行
#信息量

如果v[i]>=m+s或v[i]要删除一行,请使用以下命令:
sheet.delete_行(索引,长度)

基本上,索引是一个数字,它将表示要删除的行的开头。然后,length也是一个数字,表示将从索引中删除的列的数量。例如,
sheet.delete_行(1,26)
将删除从A到Z的所有行

如果要清空单元格,可以执行
wb['A1']=''

您还可以使用
move
移动单元格,这将覆盖所有单元格。要执行此操作,请尝试以下操作:

sheet.move_范围(“A1:Z1”,行=-1,列=2)

这将使A1:Z1范围内的单元格向上移动一行,向右移动两列。您可以根据需要更改
的值。

请注意,删除行将调整其余行的位置。为了解决这个问题,您可以反向迭代:
对于反向的i(范围(0,len(v)-1)):
。删除整行也比删除工作表更容易:
sheet.delete_rows(i,1)
,其中1表示只删除一行。请参阅