<p>另一种方法是</p>
<p>使用<code>unstack</code>格式和数据帧列名</p>
<pre><code>df= df.set_index(['ID','Segment']).unstack(fill_value='null')
df.columns = ['_'.join(val ) for val in zip(df.columns.get_level_values(0),df.columns.get_level_values(1))]
</code></pre>
<p>或者以更优雅的方式格式化列</p>
<pre><code>df.columns = df.columns.map('{0[0]}_{0[1]}'.format)
print df
</code></pre>
<p>输出:</p>
<pre><code> Var1_AAA Var1_BBB Var1_CCC Var2_AAA Var2_BBB Var2_CCC Var3_AAA Var3_BBB \
ID
1 1 null null 1 null null 1 null
2 null 1 null null 0 null null 1
3 null 1 null null 1 null null 1
4 0 null null 1 null null 1 null
5 null null 0 null null 1 null null
6 0 null null 0 null null 1 null
7 0 null null 1 null null 1 null
8 1 null null 0 null null 1 null
9 null 1 null null 0 null null 1
10 null null 1 null null 0 null null
Var3_CCC
ID
1 null
2 null
3 null
4 null
5 1
6 null
7 null
8 null
9 null
10 1
</code></pre>