重新定义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