#정리
#02reindex - 인덱스 재설정, 빈 값 채우기
#기존에 없는 인덱스로 변경: index['A','B','C'] >> index[1,2,3]
- 인덱스 변경 뒤, index 매칭이 안되는 데이터는 NaN으로 표기됨.
>> col = col.reindex([i for i in range(65,65+5)])
#기존 인덱스의 순서를 변경 :index['A','C','B'] >>index['A','B','C']
- 기존에 있는 인덱스의 순서만 변경되면, 변경된 인덱스 순서에 맞춰 값도 같이 움직인다.- 새로 추가되어 매친되는 값이 없는 인덱스는 데이터가 NaN으로 표기됨.
>> col = col.reindex(['A','B','C','D','E'])- fill_value : 새로운 인덱스의 경우, 지정 값을 삽입(디폴트값 지정과 비슷)
>> col = col.reindex([chr(i) for i in range(65,65+6)],fill_value=100)# method='ffill','pad' 옵션 : 바로 앞에 값으로 NaN값을 채워줘 (맨 처음 값은 못채움)
- print(col.reindex(range(6),method='ffill'))
- print(col.reindex(range(6),method='pad'))
# method='bfill','backfill' 옵션 : 바로 뒤에 값으로 NaN값을 채워줘 (맨 뒤의 값은 못채움)
- print(col.reindex(range(6),method='bfill'))
- print(col.reindex(range(6),method='backfill'))
#display.max.colwidth',100 : 데이터를 100자리까지 표현해줘
- 데이터값은 40자리까지 표현이 기본
- pd.set_option('display.max.colwidth',100)
#02reindex - 인덱스 재설정, 빈 값 채우기
#기존에 없는 인덱스로 변경: index['A','B','C'] >> index[1,2,3]
- 인덱스 변경 뒤, index 매칭이 안되는 데이터는 NaN으로 표기됨.
>> col = col.reindex([i for i in range(65,65+5)])
#기존 인덱스의 순서를 변경 :index['A','C','B'] >>index['A','B','C']
- 기존에 있는 인덱스의 순서만 변경되면, 변경된 인덱스 순서에 맞춰 값도 같이 움직인다.
- 새로 추가되어 매친되는 값이 없는 인덱스는 데이터가 NaN으로 표기됨.
>> col = col.reindex(['A','B','C','D','E'])
- fill_value : 새로운 인덱스의 경우, 지정 값을 삽입(디폴트값 지정과 비슷)
>> col = col.reindex([chr(i) for i in range(65,65+6)],fill_value=100)
# method='ffill','pad' 옵션 : 바로 앞에 값으로 NaN값을 채워줘 (맨 처음 값은 못채움)
- print(col.reindex(range(6),method='ffill'))
- print(col.reindex(range(6),method='pad'))
# method='bfill','backfill' 옵션 : 바로 뒤에 값으로 NaN값을 채워줘 (맨 뒤의 값은 못채움)
- print(col.reindex(range(6),method='bfill'))
- print(col.reindex(range(6),method='backfill'))
#display.max.colwidth',100 : 데이터를 100자리까지 표현해줘
- 데이터값은 40자리까지 표현이 기본
- pd.set_option('display.max.colwidth',100)
--예문 코드 보기--
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
print("numpy version",pd.__version__) #pandas version check
print("---------------")
col = pd.Series(np.arange(1,5+1),index=['A','B','C','D','E'])
col = pd.Series(np.arange(1,5+1),index=[i for i in range(65,65+5)]) #index옵션 추가
col = pd.Series(np.arange(1,5+1),index=[chr(i) for i in range(65,65+5)]) #문자 index가능
print(col.index)
print(col)
print("---기존에 없는 인덱스로 변경----")
#인덱스를 변경한다.
col = col.reindex([i for i in range(65,65+5)])
print(col.index)
print(col) #인덱스 변경 뒤, index 매칭이 안되는 데이터는 NaN으로 표기됨.
print("---기존 인덱스의 순서를 변경----")
#기존에 있는 인덱스의 순서만 변경되면, 변경된 인덱스 순서에 맞춰 값도 같이 움직인다.
col = pd.Series(np.arange(1,5+1),index=['E','A','D','B','C']) #개별 지정 가능
col = col.reindex(['A','B','C','D','E'])
col = col.reindex([chr(i) for i in range(65,65+6)],fill_value=100)
#fill_value : 새로운 인덱스의 경우, 지정 값을 삽입(디폴트값 지정과 비슷)
print(col.index)
print(col) #새로운 인덱스가 추가되어, index 매칭이 안되는 데이터는 NaN으로 표기됨.
print("---mission----")
sports = ['야구','축구','배구']
col = pd.Series(sports,index=[1,3,4])
print(col)
#index = 0~5로 변경 후, fill_value = '기타'
print(col.reindex(range(6),fill_value="기타"))
# method='ffill' 옵션 : 바로 앞에 값으로 NaN값을 채워줘 (맨 처음 값은 못채움)
print(col.reindex(range(6),method='ffill'))
print(col.reindex(range(6),method='pad'))
# method='bfill' 옵션 : 바로 뒤에 값으로 NaN값을 채워줘 (맨 뒤의 값은 못채움)
print(col.reindex(range(6),method='bfill'))
print(col.reindex(range(6),method='backfill'))
print("-----------")
txt = '''
1234567890123456789012345678901234567890
1234567890123456789012345678901234567890
'''
col = pd.Series([txt])
print(len(col[0]))
print(col) #데이터값은 40자리까지 표현이 기본
pd.set_option('display.max.colwidth',100) #데이터를 100자리까지 표현해줘
print(col)