<p>将新列<code>"code"</code>添加到每个数据帧并连接它们。显然,<code>Z198, sup</code>和<code>S222, stk</code>的行将丢失。解决方案是使用代码和模式值的乘积<code>.reindex</code>最终的数据帧。函数<code>.reindex</code>将自动向缺少的行添加<code>NaN</code></p>
<pre class="lang-py prettyprint-override"><code>idx = pd.MultiIndex.from_product(
[set(stk["code"].tolist() + sup["code"].tolist()), ["stk", "sup"]],
names=["code", "mode"],
)
x = (
pd.concat([stk.assign(mode="stk"), sup.assign(mode="sup")])
.set_index(["code", "mode"])
.reindex(idx)
.reset_index()
)
print(x)
</code></pre>
<p>印刷品:</p>
<pre class="lang-none prettyprint-override"><code> code mode 01-05-2021 02-05-2021 03-05-2021 06-05-2021
0 Z198 stk 6.0 2.0 12.0 NaN
1 Z198 sup NaN NaN NaN NaN
2 H812 stk 2.0 3.0 13.0 NaN
3 H812 sup 2.0 NaN 5.0 4.0
4 A121 stk 4.0 1.0 12.0 NaN
5 A121 sup 2.0 NaN 5.0 1.0
6 S222 stk NaN NaN NaN NaN
7 S222 sup 2.0 NaN 5.0 7.0
</code></pre>