用 Python 处理大数据?两个技巧让你的 Pandas 快 10 倍
当数据集超过百万行时,你是否觉得 Pandas 越来越慢?别急着换工具,可能是你的使用方式需要优化。今天分享两个能立即提升效率的实用技巧。
技巧一:告别巨大内存消耗
默认情况下,Pandas 会将字符串列存储为 object 类型,这非常消耗内存。试试这个:
# 转换前:占用 120MB
df['category'] = df['category'].astype('category')
# 转换后:仅占 8MB(当类别值重复度高时)
对于有限的类别数据(如省份、产品类型),category 类型可以减少高达 95% 的内存使用,同时加快分组和查询速度。
技巧二:向量化替代循环
永远不要用 for 循环处理 DataFrame 行!对比一下:
# 慢方法(避免使用!)
for i in range(len(df)):
df.loc[i, 'score'] = df.loc[i, 'points'] * 2
# 快方法(向量化操作)
df['score'] = df['points'] * 2
向量化操作利用底层的 NumPy 优化,速度通常能提升 50-100 倍。对于更复杂的逻辑,可以配合 np.where() 或 apply() 函数。
记住:在 Python 数据科学中,“像用 Excel 一样思考,但用数组的方式操作” 是关键。下次遇到性能瓶颈时,不妨先检查数据类型和操作方式,往往简单的调整就能带来巨大的提升。
思考题:当你需要处理 10GB 以上的数据时,除了 Pandas 优化,还有哪些 Python 工具可以帮到你?