Python在Excel内容中保存所需的行
我正在使用Windows7+Python 2.76 我正在尝试将xls文件的特定内容保存到新文件中 原始内容如下所示: 我想做的是在新文件中保存所有带有“UK”(第2列)的行 我正在做的事情如下: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
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
对应的行 真是难以置信!谢谢你展示和教授魔法!