相关疑难解决方法(0)

为什么有时候应用并不比pandas数据帧中的for-loop更快?

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)

然后我打电话_fapply: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)

任何人都可以解释原因吗?

python pandas

6
推荐指数
1
解决办法
8062
查看次数

标签 统计

pandas ×1

python ×1