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

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]")
```

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

你可能感兴趣的:(Python,pandas)