pandas 的df.smaple()抽樣函數


df.sample()就是抽樣函數,參數如下:

df.sample(n=None,frac=None,replace=Flase,weights=None,random_state=None,axis=None)

參數說明:

n:就是樣本量,如果不寫,就是抽一條數據

frac:抽樣比,就是樣本量占全樣本的比例,如frac=0.3  ,注意n和frac不能共存

replace:是否放回,默認是不放回,如果有放回(replace=True)可以選擇比df長度更多的元素回來

weights:樣本權重,自動歸一化,可以以某一列為權重

random_state:隨機狀態。就是為了保證程序每次運行得到的結果都一樣

axis:抽樣維度,0是行,1是列,默認為0

下面用iris數據做例子

from sklearn.datasets import load_iris
import pandas as pd
import numpy as np

iris=load_iris()
df=pd.DataFrame(iris.data,columns=iris.feature_names)

df.sample   #不帶括號,全樣本
df.sample()   #抽一條數據
df.sample(5)   #隨機抽5條
de.sample(n=5)  #可以寫n=或者不寫

df.sample(frac=0.1)  #抽取比例為0.1
df.sample(n=5,frac=0.1)   #報錯ValueError: Please enter a value for `frac` OR `n`, not both

df.sample(n=15,replace=True)   #有放回抽取15條數據
df.sample(n=15,replace=True).index.is_unique   #查看有放回抽取的15條數據的索引是不是有重復
len(df.sample(n=200,replace=True)),len(df)   #(200, 150)  # 有放回(replace=True)可以選擇比df長度更多的元素回來

df.sample(n=3,axis=1)  #對列抽樣

w=np.random.rand(df.shape[0])  #w是150個從0-1之間的隨機數
df.sample(n=3,weights=w)
df.sample(n=3,weights=df['sepal width (cm)'])  #以某列為權重
df.sample(n=3,weights=df['sepal width (cm)'].values)  #以某一列為權重,這在抽樣理論中很常見--本質上是以這一列的列值為權重

df.sample(n=3,random_state=3)  #設置了,每次程序運行的結果都一致

 


免責聲明!

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



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