【发布时间】:2018-04-24 08:45:30
【问题描述】:
我想在我的 df 中随机选择 10% 的所有行,并将每个行替换为 df 中随机抽样的现有行。
要随机选择 10% 的行 rows_to_change = df.sample(frac=0.1) 有效,我可以使用 replacement_sample = df.sample(n=1) 获得一个新的随机现有行,但我如何将它们放在一起以快速迭代整个 10%?
df 包含数百万行 x ~100 cols。
例子df:
df = pd.DataFrame({'A':[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],'B':[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],'C':[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]})
A B C
0 1 1 1
1 2 2 2
2 3 3 3
3 4 4 4
4 5 5 5
5 6 6 6
6 7 7 7
7 8 8 8
8 9 9 9
9 10 10 10
10 11 11 11
11 12 12 12
12 13 13 13
13 14 14 14
14 15 15 15
假设它随机抽取索引 2,13 以替换为随机选择的索引 6,9,最终的 df 将如下所示:
A B C
0 1 1 1
1 2 2 2
2 7 7 7
3 4 4 4
4 5 5 5
5 6 6 6
6 7 7 7
7 8 8 8
8 9 9 9
9 10 10 10
10 11 11 11
11 12 12 12
12 13 13 13
13 10 10 10
14 15 15 15
【问题讨论】: