我的 csv 文件有 3 列(Q、W、E),我想通过过滤这 3 列来生成结果
我有一个有效的伪造代码,但是当搜索或过滤器的列或条件增加到 5 或 6 时会出现问题,这将使每个条件的代码大小加倍。所以我需要一些更简单的东西。
因此,对于 4 个过滤条件,if 语句的数量为 15,对于 5,则为 31,对于 6,则为 63。
这是我的代码现在的样子
def filter_1(q, table):
return (table.loc[(table['Q Column'] == q)])
def filter_2(w, table):
return (table.loc[table['W Column'] == int(w)])
def filter_3(e, table):
return (table.loc[categ['E Column'] == e])
q = input()
w = input()
e = input()
if bool(q) == False:
q = 0
else:
q = int(q)
if bool(w) == False:
w = 0
else:
w = int(w)
if bool(e) == False:
e = 0
else:
e = int(e)
if w > 0 and q > 0 and e == 0: #12
spooled = filter2( w, filter1(q, QWE_table))
elif w > 0 and q == 0 and e == 0: #1
spooled = filter1(q, QWE_table)
elif w == 0 and q > 0 and e == 0: #2
spooled = filter1(w, QWE_table)
elif w == 0 and q == 0 and e > 0: #3
spooled = filter_3(e, QWE_table)
elif w > 0 and q == 0 and e > 0: #13
spooled = filter3( e, filter1(q, QWE_table))
elif w == 0 and q > 0 and e > 0: #23
spooled = filter3( e, (filter2( w, QWE_table)))
elif w > 0 and q > 0 and e > 0: #123
spooled = filter3( e, (filter2( w, filter1(q, QWE_table))))
else:
spooled = table
谢谢。