Переопределение индекса в объекте фрейма данных 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


есть идеи, почему это происходит?

493   2  

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  22

In:

data2 = data.set_index('a')

выход:

     b   c
a
1    2   3
10  11  12
20  21  22

In:

data2.index.name = None

выход:

     b   c
 1   2   3
10  11  12
20  21  22

Comments

    Ничего не найдено.