在 pandas 数据框中创建随机分区并创建一个标识分区的字段

问题描述 投票:0回答:1

我创建了以下 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
值是随机分配的。

有人可以帮助我吗?

pandas dataframe random calculated-columns partition
1个回答
0
投票

一个可能的解决方案:

flag11 =np.random.choice(df.index, size=int(0.8 * len(df)), replace=False)
out = df.assign(Flag = 0)
out.iloc[flag11, 1] = 1
© www.soinside.com 2019 - 2024. All rights reserved.