擅长:python、mysql、java
<p>具有多个列的数据帧的通用解决方案</p>
<pre><code>df = pd.DataFrame([
['a', np.nan, 'b'],
[np.nan, 'c', np.nan],
['d', np.nan, 'e'],
[np.nan, 'f', np.nan]
])
0 1 2
0 a NaN b
1 NaN c NaN
2 d NaN e
3 NaN f NaN
</code></pre>
<hr/>
<ul>
<li>堆栈<code>df</code>以获取序列</li>
<li>计数空值</li>
</ul>
<hr/>
<pre><code>dfs = df.stack(dropna=False)
wherenull = dfs.isnull().values
n = wherenull.sum()
</code></pre>
<hr/>
<p>生成填充值</p>
<pre><code>np.random.seed([3,1415])
fills = pd.DataFrame(
np.random.choice(
list(ascii_uppercase),
(n, 12)
)).sum(1).values
</code></pre>
<hr/>
<p>缺少填充</p>
<pre><code>dfs.loc[wherenull] = fills
dfs.unstack()
0 1 2
0 a QLCKPXNLNTIX b
1 AWYMWACAUZHT c NSMEDTNWHXNU
2 d FDXFZLYHMGEH e
3 WSOGGOVSIXKF f PYEPNHGRMMPO
</code></pre>