apply在大多数情况下,似乎可以加速数据帧的操作过程.但是当我使用时,apply我没有找到加速.这是我的例子,我有一个包含两列的数据框
>>>df
index col1 col2
1 10 20
2 20 30
3 30 40
Run Code Online (Sandbox Code Playgroud)
我想要做的就是通过实施函数来计算值,每一行数据帧R(x)上col1,结果将由值划分col2.例如,第一行的结果应该是R(10)/20.所以这是我的函数,它将被调用apply
def _f(input):
return R(input['col1'])/input['col2']
Run Code Online (Sandbox Code Playgroud)
然后我打电话_f的apply:df.apply(_f, axis=1)
但我发现在这种情况下,apply比循环要慢得多
for i in list(df.index)
new_df.loc[i] = R(df.loc[i,'col1'])/df.loc[i,'col2']
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释原因吗?