我正在尝试学习熊猫并以熊猫的方式做事。我有一个DataFrame,我想在其中将某种函数应用于某些列。我做了一些可行的事情,但是我想知道那是熊猫的方式,还是“错误”的。关键是我的数据框现在大约有40万行21列,但实际上会比现在大,所以我想做所有“最好的”方法。 我举个例子。我想对DataFrame进行操作,并对该列的每一行应用一个函数,该函数使用其他列的值,但再次使用同一行的值。这或多或少是我的工作,这行得通,但是熊猫在想吗?有一种有效的方法可以执行这样的操作吗?
def resultWohKomi(orders,outcomes,komis): # outcomes and komis are floats
try:
result = orders[1] # order is a [1,0] or [0,1]
when_black_win_then_positive_else_negative = 2*result-1
points = when_black_win_then_positive_else_negative*(outcomes + komis)
if points > 0:
result = [1,0]
else:
result = [0,1]
return result
except:
return orders
Type_new = df.apply(lambda x: resultWohKomi(x.order,x.outcome,x.komi), axis=1)
df.insert(2, "results",Type_new)
df.order为[1,0]或[0,1](整数列表)
df.outcome是像19.0这样的浮点数
df.komi是6.5之类的浮点数