【发布时间】:2018-07-30 21:52:06
【问题描述】:
我有一个 100 万大小的数据集并输入数据框。
标识说明 1 bc 单相交流电 2 调理累积 3 dsply 值交流 和大小为 2927 的字典如下所示: 核心价值 累加器 bb踢脚线 显示器执行以下代码,将数据框中的字典键替换为其值
dataset=dataset.replace(dict, regex=True)
但它会消耗更多时间来执行,即 104.07914903743769 秒用于 2000 数据集并具有 8GB RAM 我需要将此代码应用于数百万个数据集。那么谁能告诉我如何减少执行时间?还有其他方法可以完成这项任务吗?
【问题讨论】:
-
regex=True有必要吗? -
您是否尝试仅在 1 列上进行替换?
-
如果需要,您可以分块进行
-
@sshashank124 假设 OP 想要进行部分替换,那么有必要使用
regex=True。如果没有,对于大型字典, map 会更快。 stackoverflow.com/questions/20250771/… -
另一个想法是了解实际包含需要替换的值的行的百分比。如果数据集非常大,您可能会通过过滤到仅在字典的键部分中有值的行来提高性能