我想创建一个使用数据帧列作为输入的函数。此输入的一部分将是一系列。
所以它的功能如下
def myFunc(input1, input2, s_input):
for s in s_input['c':'d'].index:
print s + str(s_input[s]) +str(input1)
for s in s_input['e':].index:
print s + str(s_input[s]) +str(input2)
s = pd.Series({'a':1,'b':4,'c':7,'d':11,'e':15,'f':22})
input1=' input1'
input2 =' input2'
myFunc(input1,input2,s)
c7 input1
d11 input1
e15 input2
f22 input2
我想将其应用于像
这样的数据框df = pd.DataFrame({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9],'d':[11,12,13], 'e':[11,23,33], 'f':[75,44,55]})
df.apply(lambda x: myFunc(df.a,df.b, df.loc[x.index,'c':]))
答案 0 :(得分:1)
如果您想在此处逐行应用您的功能,请使用db.collection.update({_id: '...'}, {$push:{'letters':'x'}});
db.collection.update({_id: '...'}, {$addToSet:{'letters':'x'}});
上的axis = 1
:
apply
但是,您通常使用df.apply(lambda x: myFunc(x.a, x.b, x.loc['c':]), axis=1)
# gets printed...
c71
d111
e114
f754
c82
d122
e235
f445
c93
d133
e336
f556
来返回值。目前,您的功能不会返回任何内容。