Pandas 系列中基于字典的高效值替换
通过字典替换 pandas 系列中的值 (s.replace(d))这是一项常见的任务,不幸的是,效率可能很低。本文研究了 s.replace 缓慢的原因,并探讨了提高性能的替代方法。
s.replace 效率低下
s.replace 性能缓慢的主要原因是它处理边缘情况和需要额外处理的罕见情况。这种开销会显着影响执行时间,尤其是对于大型数据集。
替代方法
要提高性能,如果所有序列值都满足,请考虑使用 s.map(d)在字典键中找到。然而,该方法的适用性受到限制。或者,对于仅映射一小部分值的情况,请考虑以下方法之一:
一般情况:
很少值在字典中:
基准测试
基准测试证实了 s.mapping 相对于 s.replace 对于大型数据库的性能优势具有不同价值的数据集
说明
s.replace 的速度变慢归因于其广泛的处理,其中包括将字典转换为列表、检查嵌套字典和迭代通过键和值的列表。相比之下,s.map 更高效,因为它专注于使用从字典的键到系列值的优化路径进行直接值映射。
以上是Pandas `s.replace` 真的是替换系列中值的最佳方法吗?的详细内容。更多信息请关注PHP中文网其他相关文章!