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

Pandas选择指定列:如何排除特定列创建新DataFrame

反向选择列创建新DataFrame的几种方法

当然有啦!在Pandas里完全支持反向排除指定列来生成新DataFrame,不用手动列出来所有要保留的列,下面给你介绍几种常用的方法:

  • 方法一:使用drop()函数(最直观)
    直接指定要移除的列,通过axis=1参数告诉Pandas我们要操作的是列(默认axis=0是行):

    # 排除Name和Race列,返回新的DataFrame,原df不受影响
    df2 = df.drop(['Name', 'Race'], axis=1)
    

    如果想直接修改原DataFrame(不推荐,容易误操作),可以加上inplace=True参数,但一般更建议保留原数据,用返回值接收新的DataFrame。

  • 方法二:列表推导筛选列
    遍历原DataFrame的列名,只保留不在排除列表里的列:

    exclude_cols = ['Name', 'Race']
    df2 = df[[col for col in df.columns if col not in exclude_cols]]
    

    这种方式灵活性很高,还可以加入额外的判断条件(比如筛选列名包含特定关键词的列)。

  • 方法三:使用columns.difference()
    利用Pandas的列名集合差集功能,直接获取除指定列外的所有列:

    # 默认会返回排序后的列,如果要保持原列顺序,加上sort=False(Pandas 0.24+支持)
    df2 = df[df.columns.difference(['Name', 'Race'], sort=False)]
    

另外补充个小细节:你原来的正向选择写法其实可以简化,不需要再套一层pd.DataFrame()——df[['Age','Sex','Education']]返回的已经是DataFrame了,直接赋值就行:

df2 = df[['Age','Sex','Education']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 12:42:40