重新定义Pandas DataFrame对象中的索引

我试图重新索引一个pandasDataFrame对象,就像这样,

 From: abc 0 1 2 3 1 10 11 12 2 20 21 22 To : bc 1 2 3 10 11 12 20 21 22 

我正在做如下所示,并得到错误的答案。 任何线索如何做到这一点?

 >>> col = ['a','b','c'] >>> data = DataFrame([[1,2,3],[10,11,12],[20,21,22]],columns=col) >>> data abc 0 1 2 3 1 10 11 12 2 20 21 22 >>> idx2 = data.a.values >>> idx2 array([ 1, 10, 20], dtype=int64) >>> data2 = DataFrame(data,index=idx2,columns=col[1:]) >>> data2 bc 1 11 12 10 NaN NaN 20 NaN NaN 

任何想法为什么发生这种情况?

你为什么不简单地使用set_index方法?

 In : col = ['a','b','c'] In : data = DataFrame([[1,2,3],[10,11,12],[20,21,22]],columns=col) In : data Out: abc 0 1 2 3 1 10 11 12 2 20 21 22 In : data2 = data.set_index('a') In : data2 Out: bc a 1 2 3 10 11 12 20 21 22 

如果你不想在索引中find'a'

在:

 col = ['a','b','c'] data = DataFrame([[1,2,3],[10,11,12],[20,21,22]],columns=col) data 

date:

  abc 0 1 2 3 1 10 11 12 2 20 21 22 

在:

 data2 = data.set_index('a') 

date:

  bc a 1 2 3 10 11 12 20 21 22 

在:

 data2.index.name = None 

date:

  bc 1 2 3 10 11 12 20 21 22