我创建了以下 pandas 数据框:
ds = {'col1':[1.0,2.1,2.2,3.1,41,5.2,5.0,6.1,7.1,10]}
df = pd.DataFrame(data=ds)
数据框如下所示:
print(df)
col1
0 1.0
1 2.1
2 2.2
3 3.1
4 41.0
5 5.2
6 5.0
7 6.1
8 7.1
9 10.0
我需要创建数据集的随机 80% / 20% 分区,还需要创建一个字段(称为
buildFlag
),用于显示记录是否属于 80% 分区 (buildFlag = 1
) 还是属于20% 分区 (buildFlag = 0
).
例如,生成的数据框如下:
col1 buildFlag
0 1.0 1
1 2.1 1
2 2.2 1
3 3.1 0
4 41.0 1
5 5.2 0
6 5.0 1
7 6.1 1
8 7.1 1
9 10.0 1
buildFlag
值是随机分配的。
有人可以帮助我吗?
一个可能的解决方案:
flag11 =np.random.choice(df.index, size=int(0.8 * len(df)), replace=False)
out = df.assign(Flag = 0)
out.iloc[flag11, 1] = 1