簡體   English   中英

Pandas 數據框 - 對列值進行分組,然后隨機化該列的新值

[英]Pandas data frame - Group a column values then Randomize new values of that column

我有一列 (X),其中包含一些重復的值(幾行具有相同的值,並且它們都已排序)。 我需要隨機化該列的新值以測試一個問題。 所以我試過:

np.random.seed(RSEED)
df["X"] = np.random.randint(100, 500, df.shape[0])

但這還不夠,我需要保留序列,我的意思是按相同的值分組,然后為該值的所有行隨機分配一個新數字,並對原始列的所有分組值執行此操作。 例如

X 新 X(隨機)
210 500
210 500
. .
. .
340 100
340 100
. .
. .

我開始尋找 Pandas 是否有內置的東西,我可以按pandas.DataFrame.groupBy分組,但找不到可以應用於同一組的pandas.DataFrame.random

簡單的方法是使用 groupby 和 transform 來廣播每組的隨機整數

df.groupby('X')['X'].transform(lambda _: np.random.randint(100, 500))

0    137
1    137
2    .
3    .
4    335
5    335
Name: X, dtype: int64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM