从Pandas中前两个函数创建第三列

2024-03-28 14:55:39 发布

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

我有一个功能:

def lookup(group, name):
    try:
        #sql query with group and name
        return answer
    except:
        return 'NULL'

和熊猫数据帧:

^{pr2}$

我想将每行的组和名称输入到我的“lookup”函数中,并将行的答案作为第三列中的单元格返回:“value”

我看了this和{a2}问题。但他们不是我要做的。在

我也看了THIS问题。这就是我要做的。但我也没有成功。在

我试过了: df['value'] = lookup(df[0],df[1])
这个:
df['value'] = df.apply(lambda x: lookup(x[0], x[1]), axis=1)

但它只会使value列全部为“NULL”

如有任何建议,我们将不胜感激。在


Tags: andanswername功能dfsqlreturnvalue
1条回答
网友
1楼 · 发布于 2024-03-28 14:55:39

没有一个好的可重复的例子很难测试,但是你可以试试这个, 假设组不是数据帧的索引:

下面是一个完整的例子:

df = pd.DataFrame(np.random.rand(10,2), columns=['group', 'name'])

def lookup(group, name):
    if group > 0.4:
        return 'YES'
    else:
        return 'NULL'

df['value'] = df.apply(lambda x: lookup(x['group'], x['name']), axis=1)

df
      group      name value
0  0.088522  0.221607  NULL
1  0.366478  0.612860  NULL
2  0.018939  0.995080  NULL
3  0.143422  0.590115  NULL
4  0.747373  0.888054   YES
5  0.960380  0.586448   YES
6  0.671776  0.151144   YES
7  0.632334  0.802551   YES
8  0.041953  0.387241  NULL
9  0.557183  0.199470   YES

相关问题 更多 >