source

Pandas DataFrame 개체에서 인덱스 재정의

manycodes 2023. 9. 28. 08:35
반응형

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

왜 이런 일이 벌어지는지 아십니까?

그냥 방법을 쓰는 게 어때요?

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

단일 줄자로 인덱스 이름을 지정하지 않으려면 다음을 사용할 수 있습니다.set_index('a')와 함께rename_axis(None)

In [8]: data.set_index('a').rename_axis(None)
Out[8]: 
     b   c
1    2   3
10  11  12
20  21  22

세부 사항

In [9]: data
Out[9]: 
    a   b   c
0   1   2   3
1  10  11  12
2  20  21  22

언급URL : https://stackoverflow.com/questions/10457584/redefining-the-index-in-a-pandas-dataframe-object

반응형