擅长:python、mysql、java
<p>两个步骤:</p>
<p>其思想是创建一个双重拆分,然后按索引分组,并将值作为列取消堆叠</p>
<pre><code>s = (
df["clm3"]
.str.split("|", expand=True)
.stack()
.str.split("=", expand=True)
.reset_index(level=1, drop=True)
)
final = pd.concat([df, s.groupby([s.index, s[0]])[1].sum().unstack()], axis=1).drop(
"clm3", axis=1
)
</code></pre>
<hr/>
<pre><code>print(final)
clm1 clm2 clm4 clm5
0 10 a 1 5
1 11 b 2 NaN
</code></pre>