一、簡述
python的pandas庫可以輕松的處理excel中比較難實現的篩選功能,以下簡單的介紹幾種利用pandas實現篩選功能方式:
二、模塊介紹
pandas——專為解決數據分析與處理任務而創建的。
引入模塊:
import pandas as pd
,導入pandas
包;df=pd.read_excel('data.elsx',sheet_name=''sheet1")
,加載 Excel 數據;- 指定文件路徑,由於文件在 Python 腳本同目錄,直接輸入文件名即可
sheet_name
指定讀取哪個工作表、也可以寫為sheet_name=0
三、樣例
3.1 簡單查詢
-
篩選出數據的指定幾行數據
自定義函數變量data
data=df.loc[2:5] #這里的[2:5]表示第3行到第5行內容,[]第一個起始是0,表示數據的第一行
- 篩選出數據某列為某值的所有數據記錄
df['列名'] = '值'
-
多條件匹配時
自定義函數data_many
data_many=df[(df['列名1']== ‘列值1’)&(df['列名2']==‘列值2’)]
- 多值匹配時
data_many="列名 in [‘值1’,‘值2’,......]"
是不是很像SQL的語句:select * from id where name in ('值1',‘值2’,‘值3’)
3.2 模式匹配
某列中開頭是某值,中間包含某值的模式匹配法,可能在Excel中實現比較困難,但是python就非常簡單了。
自定義函數獲取返回函數值——cond
- 開頭包含某值的模式匹配
cond=df['列名'].str.startswith('值')
- 中間包含某值的模式匹配
cond=df['列名'].str.contains('值')
3.3 范圍區間值篩選
篩選出基於兩個值之間的數據:
自定義函數cond
cond=df[(df['列名1']>‘列值1’)&(df['列名1']<‘列值2’)]
返回列名1介於列值1和列值2之間的數據