DataFrame中的資料選取與過濾

2022-08-11 21:48:16 字數 2126 閱讀 4883

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

匯入資料

1

#匯入pandas和numpy庫

2import

pandas as pd

3import

numpy as np

4from 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(["

睡袋","

寵物用品

•query()方法

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

1 qt=test.query("

(所屬區域=='蘇州'|所屬區域=='崑山')&(產品類別=='睡袋'|產品類別=='寵物用品')")

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

總結:

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

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

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

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

Dataframe 按條件選取行

我們說excel好用,在處理大型資料 的時候,excel可以非常方便地進行篩選。那麼pandas是否有類似的功能呢?答案是肯定的。下面介紹的幾個操作,返回的型別都是dataframe,因此可以進行巢狀操作,非常方便。一 選取幾列組成新的dataframe df df a列列明 s列列明 h列列明 二...

python中DataFrame資料幀的統計方法

我們把每乙個column作為乙個樣本資料集,就可以對其進行一些統計學方法的計算,比如求和sum 求平均mean 求方差var 求標準差std 求個數count 求最大值max 求最小值min,等操作。我們用以下 來進行演示 import pandas as pd dict data df data ...

DataFrame中關於object資料型別的說明

1 構造乙個dataframe 圖中,我們構造了乙個dataframe,這個dataframe有2列,第一列全部都是數值型別,第二列中既有數值型別又有布林型別。對於col1列,由於都是同一種資料型別,系統能夠辨認出來,這是一種int數值型別 int64是一種預設的資料型別 對於col2列,由於這一列...