一,pandas.dataframe.sample 隨機選取若干行
1 資料切片選取
1.1 pandas.dataframe.sample 隨機選取若干行
1.1.1 功能說明
有時候我們只需要資料集中的一部分,並不需要全部的資料。這個時候我們就要對資料集進行隨機的抽樣。pandas中自帶有抽樣的方法。
功能相似:numpy.random.choice
generates a random sample from a given 1-d numpy array.
1.1.2 使用說明
1 函式名及功能
2.
dataframe.sample(n=none, frac=none, replace=false, weights=none, random_state=none, axis=none)[source]
n是要抽取的行數。(例如n=20000時,抽取其中的2w行)
frac是抽取的比列。(有一些時候,我們並對具體抽取的行數不關係,我們想抽取其中的百分比,這個時候就可以選擇使用frac,例如frac=0.8,就是抽取其中80%)
replace:是否為有放回抽樣,取replace=true時為有放回抽樣。
weights這個是每個樣本的權重,具體可以看官方文件說明。
random_state這個在之前的文章已經介紹過了。
axis是選擇抽取資料的行還是列。axis=0的時是抽取行,axis=1時是抽取列(也就是說axis=1時,在列中隨機抽取n列,在axis=0時,在行中隨機抽取n行)
返回值說明
返回選擇的n行元素的dataframe物件。
二,在機器學習中,拿到一堆訓練資料,一般會我們需要先將資料打亂,使資料隨機排序,然後在進行切分,需要將資料切分成訓練集、交叉驗證集和測試集,在監督學習中還要切分出屬性集和標籤集。
(注:df代表乙個dataframe)
1.打亂資料
df=df.sample(frac=1.0)#打亂所有資料
其中引數frac是要返回的比例,比如df中有10行資料,我只想返回其中的30%,那麼frac=0.3。
df=df.reset_index(drop=true)#打亂後的資料index也是亂的,用reset_index重新加一列index,drop=true表示丟棄原有index一列
2.切割資料
train=df.iloc[:a]#取資料的前a行為訓練集
x_train=train.iloc[:,:b]#取訓練集的前b列為屬性集
y_train=train.iloc[:,b:]#取訓練集的最後一列標籤集
三,其實,sklearn(機器學習的庫)中也有shuffle的方法。
from sklearn.utils import shuffle
df = shuffle(df)
另外,numpy庫中也有進行shuffle的方法(不建議)
df.iloc[np.random.permutation(len(df))]
Pandas入門 2 資料抽取
dataframe的資料抽取 iloc與loc的區別 iloc主要是基於整數字置 從軸的0到長度 1 如果是0 10,則抽取0,9 loc主要是基於標籤的,如果是0 10,則抽取0,10,但兩個都可以與布林陣列一起使用。indices 1 2,3 5,8 sample reviews reviews...
python中隨機打亂資料集
假設我們現在有資料 data,label 方法一 打亂資料順序 import random index i for i in range len data random.shuffle index data data index label label index 打亂後的結果 方法二 data s...
sql server 隨機抽取N條資料
select top 5 from 表名 order by newid newid 產生的新的值是不固定的 在select表裡的資料的newid 函式時候 隨即選出n條記錄 回答人的補充 2011 04 21 22 50 newid 函式會隨即產生乙個不重複的數值 你可以把它理解成乙個簡單的數字 例...