1. 程式人生 > >pandas 中排除某列、某些列的方法

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

其他的情況也類似,都可以使用正則表示式匹配