머신러닝

본문 바로가기
사이트 내 전체검색


머신러닝
머신러닝

3. 색인(index) 객체

페이지 정보

작성자 관리자 댓글 0건 조회 1,922회 작성일 20-01-22 20:36

본문

3. 색인(index) 객체

pandas의 색인 객체는 표형식의 데이터에서 각 행과 열에 대한 헤더(이름)
와 다른 메타데이터(축의 이름)를 저장하는 객체

Series나 DataFrame객체를 생성할 때 사용되는 배열이나 또는 순차적인
이름은 내부적으로 색인으로 변환된다. 

 

실습1.

from pandas import Series, DataFrame
import pandas as pd
import numpy as np

obj = Series(range(3), index=['a', 'b', 'c'])

print(obj)

idx = obj.index

print(idx)
print(idx[1])

print(idx[1:]) 

 

[결과]

a    0
b    1
c    2
dtype: int64
Index(['a', 'b', 'c'], dtype='object')
b
Index(['b', 'c'], dtype='object')

 

 

색인 객체는 변경할 수 없다.

 

실습2.

from pandas import Series, DataFrame
import pandas as pd
import numpy as np

obj = Series(range(3), index=['a', 'b', 'c'])

print(obj)

idx = obj.index

print(idx)

idx[1] = 'd'

 

[결과]

a    0
b    1
c    2
dtype: int64
Index(['a', 'b', 'c'], dtype='object')
Traceback (most recent call last):
  File "test.py", line 16, in <module>
    idx[1] = 'd'
  File "C:\Python\Python37-32\lib\site-packages\pandas\core\indexes\base.py", line 4260, in __setitem__
    raise TypeError("Index does not support mutable operations")
TypeError: Index does not support mutable operations

 

 

실습3.

from pandas import Series, DataFrame
import pandas as pd
import numpy as np

index2 = pd.Index(np.arange(3))
print(index2)

 

[결과]

Int64Index([0, 1, 2], dtype='int64')

 

 

재색인(reindex) : 새로운 색인에 맞도록 객체를 새로 생성하는 기능 

 

실습4.

from pandas import Series, DataFrame
import pandas as pd
import numpy as np

obj = Series([2.3, 4.3, -4.1, 3.5], index=['d', 'b', 'a','c'])

print(obj)

obj2 = obj.reindex(['a', 'b', 'c', 'd', 'e'])

print(obj2)

obj3 = obj.reindex(['a','b','c','c','e','f'], fill_value=0.0)

print(obj3)

 

[결과]

d    2.3
b    4.3
a   -4.1
c    3.5
dtype: float64
a   -4.1
b    4.3
c    3.5
d    2.3
e    NaN
dtype: float64
a   -4.1
b    4.3
c    3.5
c    3.5
e    0.0
f    0.0
dtype: float64 

 

실습5.

from pandas import Series, DataFrame
import pandas as pd
import numpy as np

 

obj4 = Series(['blue', 'red', 'yellow'], index=[0,2,4])
print(obj4)

 

#  method='ffill' 은 기존 인덱스를 이용하여 추가한다.

obj5 = obj4.reindex(range(6), method='ffill')

print(obj5) 

[결과]

0      blue
2       red
4    yellow
dtype: object
0      blue
1      blue
2       red
3       red
4    yellow
5    yellow
dtype: object

 

 

실습6.

from pandas import Series, DataFrame
import pandas as pd
import numpy as np

df = DataFrame(np.arange(9).reshape(3,3), index=['a','b','d'], columns=['x','y','z'])

print(df)

df2 = df.reindex(['a','b','c','d'])

print(df2)

col = ['x', 'y','w', 'z']
df3 = df.reindex(columns=col)
print(df3)

 

[결과]

   x  y  z
a  0  1  2
b  3  4  5
d  6  7  8
     x    y    z
a  0.0  1.0  2.0
b  3.0  4.0  5.0
c  NaN  NaN  NaN
d  6.0  7.0  8.0
   x  y   w  z
a  0  1 NaN  2
b  3  4 NaN  5
d  6  7 NaN  8

 

 

실습7.

from pandas import Series, DataFrame
import pandas as pd
import numpy as np

df = DataFrame(np.arange(9).reshape(3,3), index=['a','b','d'], columns=['x','y','z'])
print(df)

col = ['x', 'y','w', 'z']

df3 = df.reindex(index=['a','b','c','d'], method='ffill', columns=col)

# 데이터프레임에서 보간은 row(행)에 대해서만 이루어진다.

print(df3) 

 

[결과]

   x  y  z
a  0  1  2
b  3  4  5
d  6  7  8
   x  y   w  z
a  0  1 NaN  2
b  3  4 NaN  5
c  3  4 NaN  5
d  6  7 NaN  8

 

 

댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.