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

按列名拆分DataFrame并命名为df_列名?现有代码报语法错误

问题描述

现有如下结构的DataFrame:

A      B       C       D      E
0 Orange  Dad   X Eyes    3d     Navy
1 pink    Mum    Bored    ooo    NaN
2 Yellow  NaN    Sad      Gray   NaN

需要将该DataFrame按列名拆分为多个独立的DataFrame,每个拆分后的DataFrame命名为df_列名(例如df_A、df_B),期望输出示例:

>>> df_A

    A
0 Orange
1 pink
2 Yellow

>>> df_B

   B
0 Dad
1 Mum
2 NaN

尝试了以下代码:

d={f'df_{i}': for i in df}

出现语法错误:

File "/var/folders/jd/lh_mnln92n17ysg8grr0000gn/T/ipykernel_2633/2946580.py", line 1
    d={f'df_{i}': for i in df}
                                        ^
SyntaxError: invalid syntax
解决方法

你的代码语法错误是因为字典推导式缺少对应的值部分。以下两种方式可实现需求:

方式1:用字典存储拆分后的DataFrame

通过字典推导式,为每个列生成对应的单列DataFrame,便于统一管理:

# 假设原始DataFrame名为df
df_dict = {f'df_{col}': df[[col]] for col in df.columns}

后续可通过df_dict['df_A']、df_dict['df_B']访问对应单列DataFrame。

方式2:直接创建独立变量

如果需要直接生成df_A、df_B这类全局/局部变量,可借助globals()或locals():

for col in df.columns:
    globals()[f'df_{col}'] = df[[col]]

执行后直接输入df_A即可得到对应单列DataFrame,完全匹配你期望的输出形式。

注意:用globals()会在全局命名空间创建变量,函数内操作建议用locals();但更推荐用字典存储,避免命名空间混乱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:40:47