我写了一些使用pandas库的Python代码。但是,这段代码似乎有点慢,所以我通过cProfile运行它,以查看瓶颈在哪里。 根据cProfile结果之一,瓶颈在于对pandas.lib_scalar_compare的调用。
1604 262.301 0.164 262.301 0.164 {pandas.lib.scalar_compare}
我的问题是 - 在什么情况下会调用这个函数?我猜测当我选择 DataFrame 的一部分时会调用它。以下是我的代码示例:
if (var=='9999'):
dataTable=resultTable.ix[(resultTable['col1'] == var1)
& (resultTable['col2']==var2)].copy()
else:
dataTable=resultTable.ix[(resultTable['col1'] == var1)
& (resultTable['col2']==var2)
& (resultTable['col3']==int(val3))].copy()
我有以下问题:
- 这是最终导致瓶颈的代码片段吗?
- 如果是的话,有没有优化的方法? 我目前使用的pandas版本是pandas-0.8。
.copy()
没有任何作用,省略它会稍微加快速度。想必这不是你的整个代码... - Andy Hayden