Python 如何使用iloc[:,0]将第一列设置为索引

Python 如何使用iloc[:,0]将第一列设置为索引,python,pandas,dataframe,indexing,Python,Pandas,Dataframe,Indexing,我有一个数据帧,希望使用iloc[:,0]将第一列设置为索引,但出现了一些问题 我应用iloc[:,0]将第一列设置为索引 data12 = pd.DataFrame({"b":["a","h","r","e","a"], "a":range(5)}) data2 = data12.set_index(data12.iloc[:,0]) data2 b a b a a 0 h h 1 r r 2 e

我有一个数据帧,希望使用iloc[:,0]将第一列设置为索引,但出现了一些问题

我应用iloc[:,0]将第一列设置为索引

data12 = pd.DataFrame({"b":["a","h","r","e","a"],
                       "a":range(5)})
data2 = data12.set_index(data12.iloc[:,0])
data2

    b   a
b       
a   a   0
h   h   1
r   r   2
e   e   3
a   a   4


我想得到以下结果

    a
b   
a   0
h   1
r   2
e   3
a   4

非常感谢

请使用系列的名称,而不是系列本身

data12.set_index(data12.iloc[:, 0].name) # or data12.columns[0]


从文档中获取

此参数可以是单个列键、与调用数据帧长度相同的单个数组,也可以是包含列键和数组任意组合的列表。这里,“数组”包括系列、索引和np.ndarray


如果要设置索引并使相应的序列不再作为数据帧的列包含,则需要传递一个
键,而不是
数组。

感谢您的帮助!如果我想在不知道索引名称的情况下更改索引的名称,那么我不能使用dict{“b”:“A”},谢谢!
   a  
b     
a  0  
h  1  
r  2  
e  3  
a  4