GonsSu24 내용에 이어서 Pandas 라이브러리를 소개한다.
먼저 GongSu24를 임포트 한다.
In [1]:
from GongSu24_Pandas_Introduction_1 import *
아래와 같이 Series 객체를 생성한 후에 index를 확인해보자.
In [2]:
s6 = Series(range(3), index=['a', 'b', 'c'])
s6
Out[2]:
index의 자료형이 Index 클래스의 객체임을 확인할 수 있다.
In [3]:
s6_index = s6.index
s6_index
Out[3]:
Index 객체에 대해 인덱싱과 슬라이싱을 리스트의 경우처럼 활용할 수 있다.
In [4]:
s6_index[2]
Out[4]:
In [5]:
s6_index[1:]
Out[5]:
Index 객체는 불변(immutable) 자료형이다.
In [6]:
s6_index[1] = 'd'
색인 객체는 변경될 수 없기에 자료 구조 사이에서 안전하게 공유될 수 있다.
In [7]:
an_index = pd.Index(np.arange(3))
an_index
Out[7]:
앞서 선언된 an_index를 새로운 Series 나 DataFrame 을 생성하는 데에 사용할 수 있으며, 사용된 index가 무엇인지를 확인할 수도 있다.
In [8]:
s7= Series([1.5, -2.5, 0], index=an_index)
s7.index is an_index
Out[8]:
In [9]:
df3
Out[9]:
columns와 index 속성 모두 Index 객체이다.
In [10]:
df3.columns
Out[10]:
In [11]:
df3.index
Out[11]:
In [12]:
df3.columns[:2]
Out[12]:
In [13]:
'debt' in df3.columns
Out[13]:
In [14]:
'four' in df3.index
Out[14]:
각각의 색인은 담고 있는 데이터에 대한 정보를 취급하는 여러 가지 메서드와 속성을 가지고 있다. [표 5-3]을 참고하자.
In [15]:
s8 = Series([4.3, 9.2, 8.1, 3.9], index= ['b', 'c', 'a', 'd'])
s8
Out[15]:
reindex()
메소드를 이용하여 인덱스를 새로 지정할 수 있다.
주의: 새로 사용되는 항목이 index에 추가되면 NaN이 값으로 사용된다.
In [16]:
s9 = s8.reindex(['a', 'b', 'c', 'd', 'e', 'f'])
s9
Out[16]:
누락된 값을 지정된 값으로 채울 수도 있다.
In [17]:
s8.reindex(['a','b','c','d','e', 'f'], fill_value=0.0)
Out[17]:
In [18]:
s9 = Series(['blue', 'purple', 'yellow'], index=[0, 2, 4])
s9
Out[18]:
In [19]:
s9.reindex(range(6))
Out[19]:
In [20]:
s9.reindex(range(6), method='ffill')
Out[20]:
In [21]:
s9.reindex(range(6), method='bfill')
Out[21]:
In [22]:
s9.reindex(range(6), method='nearest')
Out[22]:
In [23]:
data = np.arange(9).reshape(3, 3)
data
Out[23]:
In [24]:
df6 = DataFrame(data, index=['a', 'b', 'd'], columns= ['Ohio', 'Texas', 'California'])
df6
Out[24]:
In [25]:
df7 = df6.reindex(['a', 'b', 'c', 'd'])
df7
Out[25]:
In [26]:
states = ['Texas', 'Utah', 'California']
df6.reindex(columns=states)
Out[26]:
method
옵션을 이용한 보간은 행 대해서만 이루어진다.
In [27]:
df6.reindex(index=['a', 'b', 'c', 'd'], method='ffill')
Out[27]:
In [28]:
df6.reindex(index=['a', 'b', 'c', 'd'], method='bfill')
Out[28]:
In [29]:
df6.reindex(index=['a', 2, 3, 4])
Out[29]:
method='nearest'
는 인덱스가 모두 숫자인 경우에만 적용할 수 있다.
In [30]:
df6.reindex(index=['a', 'b', 'c', 'd'], method='nearest')
In [31]:
df6
Out[31]:
In [32]:
states
Out[32]:
In [33]:
df6.loc[['a', 'b', 'c', 'd'], states]
Out[33]: