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
댓글목록
등록된 댓글이 없습니다.