簡體   English   中英

如何通過從列表中隨機選擇元素來替換數據框中的值?

[英]How to replace values in dataframe by choosing elements from list at random?

我有一個帶有 1 和 0 的數據框,它看起來像:

Index Variable_1 Variable_2 Variable_3
A     1          0          1
B     0          1          1
C     0          0          1

我還有一個列表,看起來像:{'X','Y','Z'}

我想用列表中的值隨機替換數據框中的所有“1”。 所以輸出可能如下所示:

Index Variable_1 Variable_2 Variable_3
A     Y          0          X
B     0          Z          Y
C     0          0          Z

我怎樣才能做到這一點?

你可以使用 np.where 和 random.choice 作為

import random

yourlist = ['X','Y','Z']
df = df.where(df == 1, random.choice(yourlist))

您也可以使用 .replace 作為

df = df.replace(1, random.choice(yourlist))

更新:你是對的,我們對每個替換都有相同的 random.choice,它沒有對所有元素進行評估?

你能試試這個看看它是如何工作的嗎

 df = df.update(np.random.choice(yourlist, size=df.shape), filter_func=lambda x: x==1)

暫無
暫無

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

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