pandas 中排除某列、某些列的方法

本文介绍使用Pandas库进行数据处理时,如何有效排除特定列并选择其他列的方法,包括直接选择所需列、利用列名差异排除、使用difference方法、以及通过正则表达式批量过滤相似列名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pandas排除某列选择其他列

使用pandas处理数据的过程中,时常会遇到这样的需求,不想要某列或者某些列,选择其他列,如果列比较少的情况可以直接选择想要的列

下面列举常用的筛选列的方法
在一个dataframe中有ABCDE五列,如果想要取ADE三列数据

  1. 第一种办法直接罗列出需要的列
    # 导入相关包
    import numpy as np
    import pandas as pd
    # 创建dataframe
    df = pd.DataFrame(np.random.randn(50, 5), columns=list('ABCDE')
    
    # 直接选择想要的列
    df2 = df[['A', 'D', 'E']]
    
  2. 获取当前所有列名,排除不想要的
    # 遍历所有列名,排除不需要的
    cols = [i for i in df.columns if i not in ['B', 'C']]
    df2 = df[cols]
    
    # 使用difference方法,它返回的是索引的差集
    df2 = df[df.columns.difference(['A', 'B'])]
    
    
  3. 删除不需要的列
    # 方法一:按照列的位置删除
    df2 = df.drop(df.columns[1,2], axis=1)
    
    # 方法二:直接按列名删除
    df2 = df.drop(['B', 'C'], axis=1)
    

上面几种方法基本能满足绝大多数情况,但是有些特殊的需求还是不能满足,比如很多相似的列名,都需要删除,这个时候就需要正则表达式了,可以使用DataFrame内置的filter方法

```python
df2 = df.filter(regex="[^BD]")
```

其他的情况也类似,都可以使用正则表达式匹配

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值