我有一个数据框,并想使用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]




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




set_index的文档中


  keys此参数可以是单个列键,长度与调用DataFrame相同的单个数组,也可以是包含列键和数组的任意组合的列表。在此,“数组”包含Series,Index和np.ndarray。


如果要设置索引并且不再将各个Series包含在DataFrame的列中,则需要传递key,而不是array

关于python - 如何使用iloc [:,0]将第一列设置为索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56448831/

10-13 07:36