如何定义多个列值并使用.map函数进行调用?

时间:2018-08-01 08:53:17

标签: python pandas

  

使用以下代码,当if条件基于x和y值满足时,我需要将值(“正确数据,不正确数据...”)放入“评估”列中,但是我得到了以下错误< / p>

AttributeError:“ DataFrame”对象没有属性“ map”

def variable(x,y):
    x = df['Volume']
    y = df['Turnover']
    if df[(x==0) & (y==0)]:
        return 'Right Data'
    if df[(x>0) & (y>0)]:
        return 'Right Data'
    if df[(x<0) & (y<0)]:
        return 'Right Data'
    if df[(x>0) & (y<0)]:
        return 'Incorrect Data'
    if df[(x<0) & (y>0)]:
        return 'Incorrect Data'
    if df[(x!=0) & (y==0)]:
        return 'Incorrect Data'
    if df[(x==0) & (y!=0)]:
        return 'Incorrect Data'
    if df[(x==0) & (y.isnull())]:
        return 'Missing Data'
    if df[(x=='Nan') & (y!=0)]:
        return 'Missing Data'
test = df[['Volume','Turnover']]
test2 = test.map(variable)
df['Assessment'] = test2

1 个答案:

答案 0 :(得分:0)

您可以尝试使用lambda:

df['Assessment'] = df.apply(lambda x: variable(x['Volume'], x['Turnover']), axis=1)

来源:

python pandas- apply function with two arguments to columns