Переопределение индекса в объекте фрейма данных Pandas
Я пытаюсь переиндексировать панд DataFrame объект, например,
From:
a b c
0 1 2 3
1 10 11 12
2 20 21 22
To :
b c
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
a b c
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
b c
1 11 12
10 NaN NaN
20 NaN NaN
есть идеи, почему это происходит?
2 ответов:
почему бы вам просто не использовать
set_indexспособ?In : col = ['a','b','c'] In : data = DataFrame([[1,2,3],[10,11,12],[20,21,22]],columns=col) In : data Out: a b c 0 1 2 3 1 10 11 12 2 20 21 22 In : data2 = data.set_index('a') In : data2 Out: b c a 1 2 3 10 11 12 20 21 22
если вы не хотите 'a' в индексе
In:
col = ['a','b','c'] data = DataFrame([[1,2,3],[10,11,12],[20,21,22]],columns=col) dataвыход:
a b c 0 1 2 3 1 10 11 12 2 20 21 22In:
data2 = data.set_index('a')выход:
b c a 1 2 3 10 11 12 20 21 22In:
data2.index.name = Noneвыход:
b c 1 2 3 10 11 12 20 21 22
Comments