使用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...