Pandas DataFrame.sample(~)
方法隨機返回指定的行數或列數。請注意,返回的是一個新副本,即修改返回的DataFrame不會改變源DataFrame。
參數
1.n
| int
| optional
隨機樣本的大小。默認情況下,n=1
。
2. frac
| float
| optional
隨機樣本的相對大小。例如,frac=0.6
表示隨機樣本的大小為值總數的 60%。
警告
僅指定 n
或 frac
- 不能同時指定兩者。
3. replace
| boolean
| optional
是否允許從同一行采樣。默認情況下,replace=False
。
4. weights
| string
或 array-like
| optional
分配給項目的權重。權重高的項目更有可能被選擇。如果權重之和不等於 1,則對它們進行歸一化,使總和變為 1。默認情況下為 weights=None
,這意味著分配相等的權重。
5. random_state
| int
或 numpy.random.RandomState
| optional
用於生成隨機樣本的種子。這用於再現性 - 如果您想獲得一致的結果,請指定此參數。
6. axis
| int
或 string
| optional
是否返回行或列:
軸 |
說明 |
---|---|
|
將返回行。 |
|
將返回列。 |
默認情況下,axis=0
。
返回值
一個新的DataFrame,包含隨機選擇的行或列。
例子
考慮以下 DataFrame :
df = pd.DataFrame({"A":["a","b","c","d"],"B":["e","f","g","h"],"C":["i","j","k","l"]})
df
A B C
0 a e i
1 b f j
2 c g k
3 d h l
基本用法
隨機獲取 2 行:
df.sample(n=2)
A B C
3 d h l
0 a e i
指定壓裂參數
要使樣本大小為總行數的一半,請設置 frac=0.5
:
df.sample(frac=0.5)
A B C
2 c g k
0 a e i
這裏,總行數的 50% 是 2,所以這就是我們最終得到 2 行的原因。
指定替換參數
要允許選擇相同的行,請設置 replace=True
。這意味著現在可能出現以下結果:
df.sample(n=2, replace=True)
A B C
0 a e i
0 a e i
指定權重參數
默認情況下,所有行被選擇的概率相同。我們可以通過設置 weights
參數來使某些行更有可能被選擇,如下所示:
df.sample(n=1, weights=[0.7 ,0.1, 0.1, 0.1])
A B C
0 a e i
在這裏,0
行將在 70% 的時間內被選中,而其他行將分別在 10% 的時間內被選中。請注意,權重之和不必為 1;該方法會自動對權重進行歸一化,使總和變為 1。
指定random_state參數
當您需要重現結果時,請設置 random_state
參數,如下所示:
df.sample(n=2, random_state=42)
A B C
1 b f j
3 d h l
現在,無論您運行此方法多少次,結果都將始終相同。你可以把數字 42 給你的朋友,他們也會在他們的機器上得到相同的結果!
指定軸參數
默認情況下,行將隨機返回:
df.sample(n=1) # axis=0
A B C
3 d h l
要獲取列,請像這樣設置axis=1
:
df.sample(n=1, axis=1)
B
0 e
1 f
2 g
3 h
相關用法
- Python PySpark DataFrame sampleBy方法用法及代碼示例
- Python PySpark DataFrame sample方法用法及代碼示例
- Python Pandas DataFrame swaplevel方法用法及代碼示例
- Python Pandas DataFrame set_axis方法用法及代碼示例
- Python Pandas DataFrame select_dtypes方法用法及代碼示例
- Python PySpark DataFrame selectExpr方法用法及代碼示例
- Python PySpark DataFrame show方法用法及代碼示例
- Python PySpark DataFrame select方法用法及代碼示例
- Python Pandas DataFrame stack方法用法及代碼示例
- Python Pandas DataFrame shift方法用法及代碼示例
- Python Pandas DataFrame sort_index方法用法及代碼示例
- Python Pandas DataFrame size屬性用法及代碼示例
- Python Pandas DataFrame set_index方法用法及代碼示例
- Python Pandas DataFrame swapaxes方法用法及代碼示例
- Python PySpark DataFrame sort方法用法及代碼示例
- Python Pandas DataFrame sub方法用法及代碼示例
- Python Pandas DataFrame sem方法用法及代碼示例
- Python Pandas DataFrame sum方法用法及代碼示例
- Python Pandas DataFrame std方法用法及代碼示例
- Python PySpark DataFrame summary方法用法及代碼示例
- Python Pandas DataFrame shape屬性用法及代碼示例
- Python Pandas DataFrame sort_values方法用法及代碼示例
- Python Pandas DataFrame slice_shift方法用法及代碼示例
- Python Pandas DataFrame squeeze方法用法及代碼示例
- Python Pandas DataFrame empty屬性用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas DataFrame | sample method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。