我编写了一些大量使用 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。
对此的任何帮助将不胜感激。