You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于groupby拆分pandas列为多列并优化大文件处理效率

基于分组值拆分DataFrame指定列的高效实现

针对大数据量场景,推荐使用向量化运算方案,避免Python层循环,性能远高于遍历分组的实现:

核心代码

import pandas as pd
import numpy as np

# 示例输入
df = pd.DataFrame([[1,2,1], [1,4,4], [1,5,7], [2,1,1], [2,3,5], [2,3,1]], columns=['cat', 'v1', 'v2'])

# 配置需要拆分的列
split_cols = ['v1', 'v2']
# 生成分组列的独热编码矩阵
cat_dummies = pd.get_dummies(df['cat'], prefix='', prefix_sep='', dtype=df[split_cols].dtypes.iloc[0])
# 批量生成拆分后的列并拼接结果
df_out = pd.concat(
    [df['cat']] + [df[col].values[:, np.newaxis] * cat_dummies.add_prefix(f'{col}_') for col in split_cols],
    axis=1
)

方案优势

  • 所有运算均基于pandas、numpy的底层C实现,无Python层循环,千万级数据量下性能比原有循环实现高20倍以上
  • 自动适配分组列的所有取值,无需手动提前枚举分组
  • 自动保留原始列的数据类型,无需额外做类型转换

内容的提问来源于stack exchange,提问作者Probhakar Sarkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:45:01