我有一个数据框,想使用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
非常感谢
答案 0 :(得分:1)
使用系列名称,而不是系列本身。
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
。