微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – pandas性能问题 – 需要帮助来优化

我写了一些python代码,大量使用pandas库.代码似乎有点慢,所以我通过cProfile运行它来查看瓶颈所在.
根据cPro​​file结果的一个瓶颈是对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-0.8.

任何有关这方面的帮助将不胜感激.

解决方法:

我的代码花了很多时间在pandas.lib.scalar_compare上,通过将基于字符串的列的数据类型转换为’category’,我能够将速度提高10倍.

例如:

   $df['ResourceName'] = df['ResourceName'].astype('category')

有关更多信息,请参阅https://www.continuum.io/content/pandas-categoricals

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐