擅长:python、mysql、java
<p>我认为最好是使用<code>set_index</code>(据我所知)。但是如果您想在不使用<code>reset_index</code>的情况下创建它,可以使用<code>zip</code>对数据进行预处理,以获得合适的形状:</p>
<pre><code>ind = list(zip(*data))[0]
dat = list(zip(*list(zip(*data))[1:]))
In [48]: dat
Out[48]: [('john', 23), ('arquimedes', 42)]
In [50]: ind
Out[50]: ('id01', 'id02')
In [52]: pd.DataFrame(dat, index=ind)
Out[52]:
0 1
id01 john 23
id02 arquimedes 42
</code></pre>
<p>或者如果你喜欢一句话:</p>
^{pr2}$
<p>展示一些<code>zip</code>魔力:</p>
<pre><code>In [53]: list(zip(*data))
Out[53]: [('id01', 'id02'), ('john', 'arquimedes'), (23, 42)]
In [54]: list(zip(*data))[1:]
Out[54]: [('john', 'arquimedes'), (23, 42)]
In [55]: list(zip(*list(zip(*data))[1:]))
Out[55]: [('john', 23), ('arquimedes', 42)]
</code></pre>