[英]apply function with constant parameter to pandas dataframe
我有一个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
我在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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.