【问题标题】:apply function with constant parameter to pandas dataframe将具有常量参数的函数应用于熊猫数据框
【发布时间】:2018-03-21 21:35:58
【问题描述】:

我有一个 pandas 数据框,并创建了一个函数。我想将此函数应用于数据框的每一行。然而,该函数有第三个参数,它不是来自数据帧,并且可以说是恒定的。

import pandas as pd

df = pd.DataFrame(data = {'a':[1, 2, 3], 'b':[4, 5, 6]})

def add(a, b, c):
    return a + b * c

df['c'] = add(df['a'], df['b'], 2)

我想我必须使用 apply 函数,但我不知道如何传递这个常量参数。

print df
>>    a  b   c
>> 0  1  4  10
>> 1  2  5  14
>> 2  3  6  18

【问题讨论】:

    标签: python pandas apply


    【解决方案1】:

    我在c 列中得到了一些不同的输出。如果需要逐行处理,请将axis=1 添加到apply

    df['c'] = add(df['a'],df['b'],2)
    df['d'] = df.apply(lambda x: add(x['a'], x['b'], 2), axis=1)
    print (df)
       a  b   c   d
    0  1  4   9   9
    1  2  5  12  12
    2  3  6  15  15
    

    def add(a,b,c):
        #operator precedence, need ()
        return (a + b) * c
    
    df['c'] = add(df['a'],df['b'],2)
    df['d'] = df.apply(lambda x: add(x['a'], x['b'], 2), axis=1)
    print (df)
       a  b   c   d
    0  1  4  10  10
    1  2  5  14  14
    2  3  6  18  18
    

    【讨论】:

    • 完美,谢谢!显然我需要一些用头计算的练习......
    猜你喜欢
    • 2018-11-13
    • 1970-01-01
    • 2020-04-30
    • 2019-02-07
    • 2015-08-29
    • 2013-08-10
    • 2021-02-12
    • 2021-07-22
    相关资源
    最近更新 更多