擅长:python、mysql、java
<p>如果我理解正确,您希望均匀地选择25%的单元格。这意味着您不能先选择记录(这会扭曲分布)。以下解决方案适用于25%的电池:</p>
<pre><code>df = pd.DataFrame({"a": range(10), "b": range(10, 20)})
total_cells = df.shape[0] * df.shape[1]
df = df.reset_index().melt(id_vars = "index")
df.loc[np.random.randint(0, total_cells, int(total_cells * .25)), "value"] = np.NaN
df.pivot(index = "index", columns = "variable")
</code></pre>
<p>结果:</p>
<pre><code> value
variable a b
index
0 0.0 10.0
1 1.0 11.0
2 2.0 NaN
3 NaN NaN
4 4.0 14.0
5 5.0 15.0
6 6.0 16.0
7 7.0 NaN
8 8.0 NaN
9 9.0 19.0
</code></pre>