我正在嘗試選擇 a 的隨機子集pd.DataFrame并將值設定為某一列。這是一個玩具示例:
import pandas as pd
df = pd.DataFrame({
'species': ['platypus', 'monkey', 'possum'],
'name': ['mike', 'paul', 'doug'],
'group': ['control', 'control', 'control']
})
species name group
0 platypus mike control
1 monkey paul control
2 possum doug control
我嘗試了以下方法,將兩個人隨機分配到實驗組,但它不起作用:
df.sample(2)['group'] = 'experimental'
事實上,這也行不通:
df.iloc[[0, 1]]['group'] = 'experimental'
uj5u.com熱心網友回復:
您可以使用df.sample(2).index獲取隨機采樣資料的 df 中的索引,然后可以將其傳遞到.loc以將這些索引的組列設定為“實驗性”,如下所示:
df.loc[df.sample(2).index, 'group'] = 'experimental'
輸出:
species name group
0 platypus mike experimental
1 monkey paul experimental
2 possum doug control
uj5u.com熱心網友回復:
這是選擇隨機索引,隨機次數的東西。
import pandas as pd
import random
def custom_randomizer(df, col):
total_randoms = random.choice(df.index) 1
for _ in range(total_randoms):
df.loc[random.choice(df.index), col] = 'expiremental'
return df
df = pd.DataFrame({
'species': ['platypus', 'monkey', 'possum'],
'name': ['mike', 'paul', 'doug'],
'group': ['control', 'control', 'control']
})
df = custom_randomizer(df, 'group')
print(df)
uj5u.com熱心網友回復:
df['group'].iloc[[0, 1]] = 'experimental'
輸出
species name group
0 platypus mike experimental
1 monkey paul experimental
2 possum doug control
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/467775.html
