DataFrame中的數據選取與過濾


導語:

在數據分析前,篩選出我們所需要的數據是非常必要的手段,下面簡單介紹幾種方法:

導入數據

1 #導入pandas和numpy庫
2 import pandas as pd
3 import numpy as np
4 from pandas import Series,DataFrame 
5 test=pd.read_excel("/Users/yaozhilin/Downloads/exercise.xlsx",sep="t")
6 test.head(5)#顯示前五行

 

 

 

 

•sample:簡單隨機選取

sample可以理解為隨機簡單抽樣在后續數分析和挖掘中經常用到

 

1 test.sample(frac=0.01,random_state=1)
2 #frac選取的比例
3 #random_state=1中的數值代表固定數據的標識

 

 

 

 

 

•isin:根據字段篩選

單個字段篩選

 

1 test.loc[test["所屬區域"]=="蘇州"]

 

多列單個字段篩選

test.loc[(test["所屬區域"]=="蘇州")&(test["產品類別"]=="睡袋")].head(5)#需用()括起每個條件

 

 

 

多字段篩選可以用isin,個人感覺isin的用法類似sql中的in

單列多字段

1 test.loc[test["所屬區域"].isin(["蘇州","昆山"])] 

 

多列多字段

t=test.loc[(test["所屬區域"].isin(["蘇州","昆山"])&(test["產品類別"].isin(["睡袋","寵物用品"])))]
t.sample(n=4)

 

 

•query()方法

直接寫表達式打方式,注意:它只直接作用於該列表的行或列名。

1 qt=test.query("(所屬區域=='蘇州'|所屬區域=='昆山')&(產品類別=='睡袋'|產品類別=='寵物用品')")
2 qt.sample(n=4)

 

注:使用query時,所有的表達式都在引號中,且字符串引號與雙引號要區分(即可以一種雙引號一種單引號),且列名不需用引號(可理解為直接調用了列表則列名不需注釋)。

 

總結:

1、單獨進行或者單獨進行列過濾用test[columns篩選條件/index篩選條件]

2、同時對行和列篩選test.loc[行篩選條件,列篩選條件],但是為單字段

3、同時對行和列篩選且多字段test.loc[test["columns"].isin([" "," ")]

4、query也可以進行多字段篩選,但主要不能引用列名和格式書寫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM