我正在尝试开发这个代码,其中我将有不同变量的某些输入,这些将使过滤器发生并返回过滤后的 Dataframe ,这个输入将始终只接收一个单一的值,用户将选择较少的选项,如果输入为空,该过滤器必须带来所有的数据。
我没有输入用户输入,因为我先测试函数,但是函数总是返回一个空的 Dataframe ,我找不到原因。下面是我开发的代码:
我没有放置数据框,因为它来自excel,但如果需要,我会整理一个适合的示例
df = pd.DataFrame({"FarolAging":["Vermelho","Verde","Amarelo"],"Dias Pendentes":["20 dias","40 dias","60 dias"],"Produto":["Prod1","Prod1","Prod2"],
"Officer":["Alexandre Denardi","Alexandre Denardi","Lucas Fernandes"],"Analista":["Guilherme De Oliveira Moura","Leonardo Silva","Julio Cesar"],
"Coord":["Anna Claudia","Bruno","Bruno"]})
FarolAging1 = ['Vermelho']
DiasPendentes = []
Produto = []
Officer = []
def func(FarolAging1,DiasPendentes,Produto,Officer):
if len(Officer) <1:
Officer = df['Officer'].unique()
if len(FarolAging1) <1:
FarolAging1 = df['FarolAging'].unique()
if len(DiasPendentes) <1:
DiasPendentes = df['Dias Pendentes'].unique()
if len(Produto) <1:
Produto = df['Produto'].unique()
dados2 = df.loc[df['FarolAging'].isin([FarolAging1]) & (df['Dias Pendentes'].isin([DiasPendentes])) & (df['Produto'].isin([Produto])) & (df['Officer'].isin([Officer]))]
print(dados2)
func(FarolAging1, DiasPendentes, Produto, Officer) ```
1条答案
按热度按时间nhaq1z211#
您必须删除
isin
中的方括号,因为您已经有了列表:输出: