擅长:python、mysql、java
<p>数据帧中总是有一个索引。如果不将'id'设置为索引,它将与其他列处于同一级别,pandas将为索引填充一个从0开始递增的整数。在</p>
<pre><code>df = pd.DataFrame([(101,3,'x'), (102,5,'y')], columns=['id', 'A', 'B'])
In[52]: df
Out[52]:
id A B
0 101 3 x
1 102 5 y
</code></pre>
<p>索引在那里,所以你可以切片原始数据帧。这样做了</p>
^{pr2}$
<p>假设您希望ID作为索引,ID作为列,这是非常多余的,您可以:</p>
<pre><code>df = pd.DataFrame([(101,3,'x'), (102,5,'y')], columns=['id', 'A', 'B'])
df.set_index('id', inplace=True)
df['id'] = df.index
df
Out[55]:
A B id
id
101 3 x 101
102 5 y 102
</code></pre>
<p>使用此选项,您可以按“id”进行切片,例如:</p>
<pre><code>df.loc[101]
Out[57]:
A 3
B x
id 101
Name: 101, dtype: object
</code></pre>
<p>但同样的信息有:</p>
<pre><code>df = pd.DataFrame([(101,3,'x'), (102,5,'y')], columns=['id', 'A', 'B'])
df.set_index('id', inplace=True)
df.loc[101]
Out[58]:
A 3
B x
Name: 101, dtype: object
</code></pre>