【发布时间】:2019-06-25 03:36:06
【问题描述】:
假设我有以下数据框:
import pandas as pd
df = pd.DataFrame({'n': [1, 2, 3], 'm': [4, 4, 7]})
df.loc[df['m']==4,'n']=1
在相对较小的数据集(约 50,000 个 int32 样本)上运行此 .loc 函数需要 11 毫秒。有什么办法可以加快速度吗?我希望将相同的操作降低到 10-100μs 之间。
更新
我已将上面的示例编辑得更简洁。
测试建议的方法后,最快的是:
df['n'].values[df['m'].values == 4] = 1
将该解决方案应用于约 50,000 个样本数据集后,该解决方案的运行速度比原始代码快 244 倍。
【问题讨论】:
标签: python pandas performance numpy