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

2021-08-28 14:03:53 字數 1117 閱讀 7460

使用pandas處理資料的過程中,時常會遇到這樣的需求,不想要某列或者某些列,選擇其他列,如果列比較少的情況可以直接選擇想要的列

下面列舉常用的篩選列的方法

在乙個dataframe中有abcde五列,如果想要取ade三列資料

第一種辦法直接羅列出需要的列

# 匯入相關包

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'

]]

獲取當前所有列名,排除不想要的

# 遍歷所有列名,排除不需要的

cols =

[i for i in df.columns if i notin[

'b',

'c']

]df2 = df[cols]

# 使用difference方法,它返回的是索引的差集

df2 = df[df.columns.difference(

['a'

,'b'])

]

刪除不需要的列

# 方法一:按照列的位置刪除

df2 = df.drop(df.columns[1,

2], axis=1)

# 方法二:直接按列名刪除

df2 = df.drop(

['b'

,'c'

], axis=

1)

上面幾種方法基本能滿足絕大多數情況,但是有些特殊的需求還是不能滿足,比如很多相似的列名,都需要刪除,這個時候就需要正規表示式了,可以使用dataframe內建的filter方法

```python

df2 = df.filter(regex="[^bd]")

```

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

pandas根據某列去重

drop duplicates subset comment keep first inplace true 引數 栗子 首先建立乙個dataframe。使用drop duplicates來去除重複值,如果不指明subset,那麼預設根據所有列來考慮,即當某兩行資料所有列都重複時進行去重。subse...

sql中排除某一列,很靈驗呀

declare columnlist varchar 8000 tablename varchar 255 定義兩個變數 select columnlist tablename byscurrent 變數賦值 select columnlist columnlist name from syscol...

pandas 某列查詢 選取與刪除某數

法1 迴圈比較 for x in df id if x 1 print exsit break耗時 2.8s 如果不僅僅想確認存在,還想返回下標。多用乙個enumerate,或者用range進行迴圈即可。法2 掩碼運算 不僅能確認存在,存在時還能獲得index。q mydf mydf id 1 in...