筛选Excel选项卡

2024-09-28 21:37:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有2个excel文件:空闲列表.csv以及数据库.csv. IDList包含一个300个ID号的列表,我想从数据库中筛选出来,其中包含2000个条目(数据库中只剩下1700个条目)。在

我尝试编写一个for循环(对于IDList中的每个ID,过滤掉这个ID)数据库.csv)但是我在过滤功能上有些问题。我用的是Pyvot(http://packages.python.org/Pyvot/tutorial.html). 我得到一个语法错误…Python/Pyvot不喜欢我的语法xl.过滤器,但我不知道如何更正语法。文件上说的是:

在xl.tools.过滤器(功能,范围) 通过对给定范围应用func来筛选行或列。为范围内的每个值调用func。如果返回False,则隐藏相应的行/列。否则,将使行/列可见。在

范围必须是行或列向量。如果是行向量,则列被隐藏,反之亦然。在

请注意,要取消隐藏行/列,区域必须包含隐藏的单元格。例如,要取消隐藏范围: xl.过滤器(lambda v:是的,有些_vector.including_隐藏)在

我的代码是:

import xl 

IDList = xl.Workbook("IDList.xls").get("A1:A200").get() 

for i in range(1,301):
     xl.filter(!=IDList[i-1],"A1:A2000")

如何过滤列数据库.csv在中使用条件IDList.csv?我对Python或excelvba宏的解决方案持开放态度,尽管我更喜欢Python。在


Tags: 文件csv功能id数据库过滤器列表for
1条回答
网友
1楼 · 发布于 2024-09-28 21:37:45
import csv

with open("IDList.csv","rb") as inf:
    incsv = csv.reader(inf)
    not_wanted = set(row[0] for row in incsv)

with open("Database.csv","rb") as inf, open("FilteredDatabase.csv","wb") as outf:
    incsv = csv.reader(inf)
    outcsv = csv.writer(outf)
    outcsv.writerows(row for row in incsv if row[0] not in not_wanted)

相关问题 更多 >