我在df数据集中总共有132行。如果我使用以下代码,它将在“ train”列中为我提供一个随机数的“ True”值。有时46或有时50,但我想在“火车” 列中将其精确设置为53 “真” 值和79 “假” 值
train_test_per = 60/100.0
df['train'] = np.random.rand(len(df)) < train_test_per
df['train'] = "condition"
此处我必须使用的条件是什么
如果有人帮助我,那将是极大的荣幸。我已经尝试解决,但是由于我是新手,所以找不到合适的解决方案。
如果缺少任何信息,请告诉我。
答案 0 :(得分:3)
为什么不像以前那样使用熊猫的sample
:
df['train'] = False
df.loc[df.sample(n=53).index, 'train'] = True
选项2 :np.random.choice
:
train_idx = np.random.choice(df.index, size=53, replace=False)
df['train'] = False
df.loc[train_idx, 'train'] = True
答案 1 :(得分:1)
import random
true_false = [True if x < 53 else False for x in range(100)]
random.shuffle(true_false)
df["train"] = pd.Series(true_false)
编辑:Quang Hoang的回复比我的要好。我将我作为替代解决方案。
答案 2 :(得分:1)
另一种(丑陋的)方法可能是:
['cache or debit','credit or loan','leasing']
祝你好运!