如何通过Python在Excel中删除范围或重复行?

时间:2018-09-11 18:27:04

标签: excel python-3.x

我有一个具有单列和多行的Excel工作表。我想删除一定范围的重复行(而不仅仅是一行)。数据如下所示:

 100011

  1.24
  1.35
  2.45
  1.26

 100012

  3.4
  3.6
  1.26
  4.25

 100011

  1.24
  1.35
  2.45
  1.26

这只是很大文件的一小部分,手动删除将花费很长时间。我正在尝试编写一个程序来删除10011及其下面的四行(1.24、1.35、2.45、1.26),这些行在底部重复。 单独删除行也会导致10012中的1.26删除,我想保留此行。以下是我用来删除单个重复行并创建新工作表的内容。如何扩展它以删除重复的范围而不是单个行?

read_file = xlrd.open_workbook('Original1.xlsx')
write_file = xlsxwriter.Workbook ('Copy_Original.xlsx')

for sheet in read_file.sheets():
    no_rows = sheet.nrows
    no_cols = sheet.ncols
    name = sheet.name
    gen_sheets = write_file.add_worksheet(name)
    line_list = []
    r = 0
    for row in range(0, no_rows):
        line_sublist = [sheet.cell(row,col).value for col in range(0,no_cols)]
        if line_sublist not in line_list:
            line_list.append(line_sublist)
            for col in range(0, no_cols):
                gen_sheets.write(r,col,line_sublist[col])
            r = r + 1
write_file.close()

0 个答案:

没有答案