擅长:python、mysql、java
<p>您可以通过以下方法执行此操作:</p>
<p>方法1:将列转换为数据帧并获取Dummie,然后<code>groupby</code>on <code>axis=1</code>并获取max:</p>
<pre><code>m = pd.get_dummies(pd.DataFrame(df['code'].tolist())).groupby(lambda x:
x.split('_')[1],axis=1).max()
final1 = df.drop('code',1).assign(**m)
</code></pre>
<p>方法2:用<code>|</code>连接列列表并使用<code>series.str.get_dummies</code></p>
<pre><code>final2 = df.drop('code',1).assign(**df['code'].str.join('|').str.get_dummies())
</code></pre>
<p>方法3:使用<code>concat</code>的方法</p>
<pre><code>s = pd.Series(df["code"])
l = pd.get_dummies(s.apply(pd.Series).stack()).max(level=0)
final3 = pd.concat((df.drop('code',1),l),axis=1)
#or final = df.drop('code',1).assign(**l)
</code></pre>