当前位置: 首页 > 知识库问答 >
问题:

从Pandas[duplicate]中前两列上的函数创建第三列

栾鸣
2023-03-14

我有一个功能:

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

以及数据帧:

+------------+------+
|   group    | name |
+------------+------+
| redteam    | paul |
| blueteam   | pat  |
| yellowteam | mike |
+------------+------+

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

我已经看了这个和这个问题。但他们不完全是我在做的。

我也研究过这个问题。这就是我正在做的。但对我来说也没有成功。

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

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

这里的任何建议都非常感谢。

共有1个答案

胡鸿远
2023-03-14

如果没有一个好的可重复的示例,很难进行测试,但您可以尝试这样做,假设group不是数据帧的索引:

以下是一个完整的示例:

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
 类似资料:
  • 我有一个数据框架,我想从其中一列的列表中创建5列 示例: 请注意,这里很少有列表少于5列,对于这些列,请在该位置插入NAN。

  • 我想在Pandas数据集中创建一个新列,基于另外两个列的值。 现在,应该如下所示: 有什么帮助吗?

  • 问题内容: 我有以下数据框: 现在,我想创建另一个列,其值在和之间最大。因此,我希望将其作为输出: 我试过了 : 但是,这会引发语法错误。我没有任何方法可以在熊猫中做到这一点。我的实际数据框太复杂了,因此我想为此提供一个通用的解决方案。有任何想法吗? 问题答案: 您可以使用: 解决方案: 或更简单的发现:

  • 我有一个数据框,如: 我需要为每个列应用一些函数,并在这个数据帧中创建具有特殊名称的新列。 所以我需要根据列和(如name)乘以两个额外的列,名称为和由两个。是否可以使用或其他结构来完成此操作?

  • 考虑下面的数据集存储在熊猫数据文件<代码> DFX < /代码>: 我有一个函数是: 现在,我想在中创建一个新列,其中包含计算出的z值 查看其他SO示例,我尝试了几个变体,包括: 返回错误。正确的方法是什么?

  • 如何在熊猫身上做到这一点: 更新2:这个问题是在V0.11.0左右提出的。因此,许多问题和答案都不太相关。