繁体   English   中英

Function 用多个 if / and 条件过滤 dataframe

[英]Function to filter dataframe with multiple if / and conditions

构建一个 function,查看 dataframe 和变量“ infolist ”并返回一组客户端,这些客户端同时在 infolist 和 dataframe 中,并且至少满足一个语句:

  1. 信息列表中会员费大于/等于当前“报价”的任何客户

  2. 信息列表中“反馈”为 0.2(或更高)的任何客户

示例 dataframe:

df = pd.DataFrame({'Client': ['A','B','C'], 'Offer-Price':[90,6591,8000], 'Feedback': [0.1, 0.2,0.1]})

   Client     Offer-Price   Feedback
0      A              90         0.1
1      B            6591         0.2
2      C            8000         0.1

'infolist'/元组输入:

infolist = [('A', 100.0), ('C', 3900.0)]

预期结果:

Client C

到目前为止尝试的代码:不确定为什么经过大量研究后这不起作用。

def testfunction(df, infolist):
    df = np.where((df['Client']== infolist[x[0]]) & (df['Feedback']>= 0.2) | (infolist[x[1]] >= df['Offer-Price']))
    return df

infolist创建一个 dataframe 然后将其合并到df并过滤掉您的数据:

out = pd.DataFrame(infolist, columns=['Client', 'Offer-Price']).merge(df, on='Client')
mask = (out['Offer-Price_x'] < out['Offer-Price_y']) | (out['Feedback'] >= 0.2)
out = out.loc[mask, 'Client']
print(out)

# Output:
1    C
Name: Client, dtype: object

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM