Python在Excel内容中保存需要的行

我正在使用Windows 7 + Python 2.76。

我正在尝试将xls文件的特定内容保存到新文件中。

原始内容如下所示:

在这里输入图像说明

我想要做的是保存所有与“英国”(第二列)的行在新的文件。

我正在做的是如下:

old_file = open_workbook('C:\\1.xls',formatting_info=True) old_sheet = old_file.sheet_by_index(0) new_file = xlwt.Workbook(encoding='utf-8', style_compression = 0) new_sheet = new_file.add_sheet('Sheet1', cell_overwrite_ok = True) contents = [] for row in range(old_sheet.nrows): a = old_sheet.cell(row,0).value b = old_sheet.cell(row,1).value c = old_sheet.cell(row,2).value if "UK" in b: contents.append(a) contents.append(b) contents.append(c) for c, content in enumerate(contents): new_sheet.write(0, c, content) new_file.save('C:\\file_1.xls') 

然而它只把所有的结果放在一行中。 我想这是因为我把所有的内容放到1个列表中,并把它们写入1行。

但是,把它们放在什么地方呢? (因为需要的行数是不确定的)。

随着pandas

 import pandas as pd orig_df = pd.read_excel(orig_excel_path, sheetname=sheetname) orig_df[orig_df['Visited'] == 'UK'].to_excel(new_excel_path, sheet_name=new_sheetname) 

打破它:

orig_df['Visited'] == 'UK'如果“已Visited列是'UK''UK'将为每行返回TrueFalse列表。 在这种情况下[False, True, False, True] 。 将这个列表传递回原来的数据框只会使索引中的行与True相对应。

追加1行3列,使用“二维数组”数据结构,例如列表清单:

 contents.append([a, b, c])