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

Python在Excel内容中保存所需的行,python,excel,python-2.7,Python,Excel,Python 2.7,我正在使用Windows7+Python 2.76 我正在尝试将xls文件的特定内容保存到新文件中 原始内容如下所示: 我想做的是在新文件中保存所有带有“UK”(第2列)的行 我正在做的事情如下: 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_co

我正在使用Windows7+Python 2.76

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

原始内容如下所示:

我想做的是在新文件中保存所有带有“UK”(第2列)的行

我正在做的事情如下:

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')
但是,它只将所有结果放在一行中。我想这是因为我把所有的内容放在一个列表中,然后写在一行中


但是正确的方法是什么呢?(因为所需的行数不确定)。

要用3列追加1行,请使用“2D数组”数据结构,例如列表列表:

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

使用熊猫:

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['visted']='UK'
返回每行
True
False
的列表,如果
visted
列为
'UK'
。在这种情况下,
[False,True,False,True]
。将此列表传递回原始数据帧将只提供索引中与
True
对应的行

真是难以置信!谢谢你展示和教授魔法!