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