[英]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.