當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.DataFrame.sample用法及代碼示例


用法:

DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None, ignore_index=False)

從對象的軸返回項目的隨機樣本。

您可以使用random_state 來獲得重現性。

參數

n整數,可選

從軸返回的項目數。不能與 frac 一起使用。如果 frac = 無,則默認 = 1。

frac浮點數,可選

要返回的軸項目的分數。不能與 n 一起使用。

replace布爾值,默認為 False

允許或禁止對同一行多次采樣。

weightsstr 或ndarray-like,可選

默認“無”導致相等的概率權重。如果傳遞一個係列,將與索引上的目標對象對齊。采樣對象中未找到的權重索引值將被忽略,采樣對象中未找到權重的索引值將分配為零權重。如果在 DataFrame 上調用,將在軸 = 0 時接受列的名稱。除非權重是一個係列,否則權重必須與被采樣的軸的長度相同。如果權重總和不為 1,則它們將被歸一化為總和為 1。權重列中的缺失值將被視為零。不允許無限值。

random_stateint,array-like,BitGenerator,np.random.RandomState,np.random.Generator,可選

如果是 int、array-like 或 BitGenerator,則為隨機數生成器的種子。如果 np.random.RandomState 或 np.random.Generator,按給定使用。

axis{0 或‘index’,1 或‘columns’,無},默認無

要采樣的軸。接受軸號或名稱。默認是給定數據類型的統計軸(係列和數據幀為 0)。

ignore_index布爾值,默認為 False

如果為 True,則生成的索引將標記為 0、1、...、n - 1。

返回

Series或DataFrame

一個與調用者類型相同的新對象,其中包含從調用者對象中隨機采樣的n 項。

注意

如果 frac > 1,則 replacement 應設置為 True

例子

>>> df = pd.DataFrame({'num_legs':[2, 4, 8, 0],
...                    'num_wings':[2, 0, 0, 0],
...                    'num_specimen_seen':[10, 2, 1, 8]},
...                   index=['falcon', 'dog', 'spider', 'fish'])
>>> df
        num_legs  num_wings  num_specimen_seen
falcon         2          2                 10
dog            4          0                  2
spider         8          0                  1
fish           0          0                  8

Series df['num_legs'] 中提取 3 個隨機元素:請注意,我們使用 random_state 來確保示例的可重複性。

>>> df['num_legs'].sample(n=3, random_state=1)
fish      0
spider    8
falcon    2
Name:num_legs, dtype:int64

DataFrame 的隨機 50% 樣本替換:

>>> df.sample(frac=0.5, replace=True, random_state=1)
      num_legs  num_wings  num_specimen_seen
dog          4          0                  2
fish         0          0                  8

DataFrame 帶替換的上采樣示例:請注意,replace 參數必須為 True,以便 frac 參數 > 1。

>>> df.sample(frac=2, replace=True, random_state=1)
        num_legs  num_wings  num_specimen_seen
dog            4          0                  2
fish           0          0                  8
falcon         2          2                 10
falcon         2          2                 10
fish           0          0                  8
dog            4          0                  2
fish           0          0                  8
dog            4          0                  2

使用 DataFrame 列作為權重。 num_specimen_seen 列中具有較大值的行更有可能被采樣。

>>> df.sample(n=2, weights='num_specimen_seen', random_state=1)
        num_legs  num_wings  num_specimen_seen
falcon         2          2                 10
fish           0          0                  8

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.sample。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。