擅长:python、mysql、java
<p>IIUC公司</p>
<pre><code>df.set_index('col1').groupby(df.col1.eq('SUB').cumsum().values).apply(lambda s: pd.DataFrame({
'SUB': s.loc['SUB'].item(),
'CAT': s.loc['CAT'].item(),
s.index[2]: s.loc[s.index[2]].col2.tolist()
})).reset_index(drop=True)
</code></pre>
<p>输出</p>
<pre><code> SUB CAT CODE CODE1
0 123 SKU 1000123 NaN
1 123 SKU 1000234 NaN
2 456 LIQ NaN 1000345
3 456 LIQ NaN 1000534
4 456 LIQ NaN 1000433
</code></pre>
<p>然而,这看起来像是一个XY问题。也许有必要先看看你是如何得到这个<code>df</code>的</p>