<p>您可以通过将转换的字符串拆分为列表来在列中创建<code>MultiIndex</code>,其中<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.concat.html" rel="nofollow noreferrer">^{<cd2>}</a>用于连接:</p>
<pre><code>df1 = df.set_index(['Sample','Pop'])
comp = [pd.DataFrame(df1[x].apply(list).values.tolist(), index=df1.index) for x in df1.columns]
df2 = pd.concat(comp, axis=1, keys=df1.columns)
print (df2)
a1 a10 a100
0 1 0 1 0 1
Sample Pop
F295 Pesche A C A T A A
F296 Pesche G T C G A C
F297 Pesche A A G G T T
F298 Pesche A C A G C G
</code></pre>
<p>如果需要避免<code>MultiIndex</code>,首先通过f字符串连接列名,以避免重复的列名,然后<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reset_index.html" rel="nofollow noreferrer">^{<cd4>}</a>:</p>
<pre><code>df2.columns = [f'{a}_{b}' for a, b in df2.columns]
df2 = df2.reset_index()
print (df2)
Sample Pop a1_0 a1_1 a10_0 a10_1 a100_0 a100_1
0 F295 Pesche A C A T A A
1 F296 Pesche G T C G A C
2 F297 Pesche A A G G T T
3 F298 Pesche A C A G C G
</code></pre>