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


Python pandas.core.groupby.DataFrameGroupBy.sample用法及代碼示例


用法:

DataFrameGroupBy.sample(n=None, frac=None, replace=False, weights=None, random_state=None)

從每個組中返回隨機項目樣本。

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

參數

n整數,可選

每個組要返回的項目數。不能與 frac 一起使用,並且不能大於最小組,除非 replace 為 True。如果frac 為無,則默認值為 1。

frac浮點數,可選

要退回的項目的一部分。不能與 n 一起使用。

replace布爾值,默認為 False

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

weightslist-like,可選

默認無導致相等的概率加權。如果傳遞了list-like,則值必須與底層 DataFrame 或 Series 對象具有相同的長度,並且將在每個組內標準化後用作采樣概率。值必須是非負的,每組中至少有一個正元素。

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

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

返回

Series或DataFrame

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

例子

>>> df = pd.DataFrame(
...     {"a":["red"] * 2 + ["blue"] * 2 + ["black"] * 2, "b":range(6)}
... )
>>> df
       a  b
0    red  0
1    red  1
2   blue  2
3   blue  3
4  black  4
5  black  5

為 a 列中的每個不同值隨機選擇一行。 random_state 參數可用於保證重現性:

>>> df.groupby("a").sample(n=1, random_state=1)
       a  b
4  black  4
2   blue  2
1    red  1

設置 frac 以采樣固定比例而不是計數:

>>> df.groupby("a")["b"].sample(frac=0.5, random_state=2)
5    5
2    2
0    0
Name:b, dtype:int64

通過設置權重控製組內的樣本概率:

>>> df.groupby("a").sample(
...     n=1,
...     weights=[1, 1, 1, 0, 0, 1],
...     random_state=1,
... )
       a  b
5  black  5
2   blue  2
0    red  0

相關用法


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