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

基于列唯一值从现有Pandas DataFrame动态创建新DataFrame

按指定列值动态生成多个DataFrame的实用方案

前阵子做特征工程的时候碰到个麻烦:数据集里有大量特征需要做向量化,后续还要套各种处理函数,但手动复制DataFrame、筛选不同分组再逐一处理的方式太蠢了——我想直接根据某列(比如我的数据里的Column B)的不同取值,自动生成对应的新DataFrame,比如df_A、df_B、df_C这类。

试了两种方法都翻车了:

  • 一开始想用字典存储,结果运行dict_of_df[key_name] = copy.deepcopy(df)时直接炸了,报TypeError: unhashable type: 'numpy.ndarray',查了才知道是用来当key的变量类型不对,没法被哈希;
  • 自己瞎写的逻辑更离谱,直接抛出ValueError: Wrong number of items passed 2, placement implies 1,折腾半天没搞明白哪里错。

后来在社区里看到@jezrael分享的方法,一下子就搞定了!核心代码特别简洁,利用groupby配合globals()动态创建变量:

for i, x in df.groupby('Column B'):
    globals()['dataframe' + i] = x

这段代码会自动遍历Column B里的每一个唯一值,把它当成后缀拼在dataframe后面生成新的DataFrame变量,比如Column B里有'A'、'B'、'C'的话,就会自动生成dataframeA、dataframeB、dataframeC,每个变量对应的就是原数据中Column B取值为对应值的子集,完全不用手动写筛选条件,省了大把重复劳动!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:28:13