[英]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 True
的sum
以獲得正確的數組長度:
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.