[python] Pandas DataFrame 객체에서 인덱스 재정의
팬더 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
왜 이런 일이 일어나는지 아십니까?
답변
단순히 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’를 원하지 않는 경우
에 :
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
에 :
data2 = data.set_index('a')
밖:
b c
a
1 2 3
10 11 12
20 21 22
에 :
data2.index.name = None
밖:
b c
1 2 3
10 11 12
20 21 22