簡體   English   中英

如何使用 Pandas 列表中的值隨機替換列中的值?

[英]How to replace values in a column randomly using values from a list on Pandas?

我有以下 dataframe:

data = {'Names':['Antonio','Bianca','Chad','Damien','Edward','Frances','George'],'Sport':['Basketball','Placeholder','Football','Placeholder','Tennis','Placeholder','Placeholder']}

df = pd.DataFrame(data, columns = ['Names','Sport'])

我想用以下列表中的任何值隨機替換值“占位符”:

extra_sports = ['Football','Basketball','Tennis','Rowing']

最終結果應該看起來像這樣,其中值“占位符”現在消失了,並隨機替換為列表中的值:

data = {'Names':['Antonio','Bianca','Chad','Damien','Edward','Frances','George'],'Sport':['Basketball','Tennis','Football','Rowing','Tennis','Football','Tennis']}

df = pd.DataFrame(data, columns = ['Names','Sport'])

如果可能的話,我將如何實現 random.seed 以便我可以重現結果。

我相信你只需要用列表替換值Placeholder ,對於列表的長度,使用 boolean Truesum以獲得正確的數組長度:

extra_sports = ['Football','Basketball','Tennis','Rowing']
   
np.random.seed(1) 
m = df['Sport'].eq('Placeholder')
df.loc[m, 'Sport'] = np.random.choice(extra_sports, size=m.sum())
print (df)
     Names       Sport
0  Antonio  Basketball
1   Bianca  Basketball
2     Chad    Football
3   Damien      Rowing
4   Edward      Tennis
5  Frances    Football
6   George    Football

暫無
暫無

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

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