首页 文章

如何在使用多列和列名的pandas中编写lambda表达式?

提问于
浏览
0

我想使用pandas lambda表达式实现以下功能

  • 在名称列'ideal_prime_fc'列的列中查找值

  • 在名称列'prime_fc'列的列中查找值

  • 找到差异并放入新栏目'delta'

dataframe

1 回答

  • 0

    以下是适合您的工作吗?

    编写一个函数来减去两个素数值列中的值:

    def get_col_name(x):
        try:
            ip_fc = x['ideal_prime_fc']
            p_fc = x['prime_fc']
            return x[ip_fc]-x[p_fc]
        except IndexError:
            return float('NaN')  # handle non-existent values however you'd prefer
    

    应用该函数,分配给新列:

    df['diff'] = df.apply(lambda x: get_col_name(x), axis=1)
    

    截断的示例输出:

    983     976     ideal_prime_fc  prime_fc    diff
    2835    780     973             805         NaN
    8       2259    983             983         0.0
    2851    796     973             805         NaN
    13      7       983             976         6.0   # added for test
    

相关问题