Python 데이터 분석
Python 데이터분석 기초 7 - 색인(loc, iloc), 결측값 채우기, 순서 재배치
코딩탕탕
2022. 10. 31. 11:23
# 색인
import pandas as pd
import numpy as np
# Series의 재색인
data = pd.Series([1, 3, 2], index = (1, 4, 2)) # index는 list, tuple, set 가능하다.
print(data)
print('순서를 재배치')
data2 = data.reindex((1, 2, 4))
print(data2)
print()
data3 = data2.reindex([0, 1, 2, 3, 4, 5])
print(data3) # 없는 인덱싱을 넣으면 대응값이 없는 인덱스는 NaN(결측값)이 된다.
data3 = data2.reindex([0, 1, 2, 3, 4, 5], method = 'pad')
print(data3) # 이전 값으로 결측값을 채운다.
print('NaN(결측값) 채우기') # NaN(결측값) 채우기
data3 = data2.reindex([0, 1, 2, 3, 4, 5], method = 'ffill')
print(data3) # 이전 값으로 결측값을 채운다.
data3 = data2.reindex([0, 1, 2, 3, 4, 5], method = 'bfill')
print(data3) # 다음 값으로 결측값을 채운다.
data3 = data2.reindex([0, 1, 2, 3, 4, 5], method = 'backfill')
print(data3) # 다음 값으로 결측값을 채운다.
print('--------')
df = pd.DataFrame(np.arange(12).reshape(4, 3), index = ['1월', '2월', '3월', '4월'], columns = ['강남', '강북', '서초'])
print(df)
print(df['강남']) # 강남 열만 출력한다.
print(df['강남'] > 3) # True, False를 반환받는다.
print(df[df['강남'] > 3]) # 강남 열 중에 3 초과된 값의 행을 출력한다.
print('슬라이싱 관련 method : 복수 인덱싱 loc - 라벨 지원, iloc - 숫자 지원')
print(df.loc['3월', :]) # 3월행 모든 열 호출
print(df.loc[:'2월']) # 2월 이하 행 호출
print(df.loc[:'2월', ['서초']]) # 2월 이하 행 서초열 호출
print()
print(df.iloc[2]) # 2행 호출
print(df.iloc[2, :]) # 2행 호출
print(df.iloc[:3]) # 3행 미만 호출
print(df.iloc[:3, 2]) # 3행 미만 2열 호출
print(df.iloc[1:3, 1:3]) # 1행 2행, 1열, 2열 호출
<console>
1 1
4 3
2 2
dtype: int64
순서를 재배치
1 1
2 2
4 3
dtype: int64
0 NaN
1 1.0
2 2.0
3 NaN
4 3.0
5 NaN
dtype: float64
0 NaN
1 1.0
2 2.0
3 2.0
4 3.0
5 3.0
dtype: float64
NaN(결측값) 채우기
0 NaN
1 1.0
2 2.0
3 2.0
4 3.0
5 3.0
dtype: float64
0 1.0
1 1.0
2 2.0
3 3.0
4 3.0
5 NaN
dtype: float64
0 1.0
1 1.0
2 2.0
3 3.0
4 3.0
5 NaN
dtype: float64
--------
강남 강북 서초
1월 0 1 2
2월 3 4 5
3월 6 7 8
4월 9 10 11
1월 0
2월 3
3월 6
4월 9
Name: 강남, dtype: int32
1월 False
2월 False
3월 True
4월 True
Name: 강남, dtype: bool
강남 강북 서초
3월 6 7 8
4월 9 10 11
슬라이싱 관련 method : 복수 인덱싱 loc - 라벨 지원, iloc - 숫자 지원
강남 6
강북 7
서초 8
Name: 3월, dtype: int32
강남 강북 서초
1월 0 1 2
2월 3 4 5
서초
1월 2
2월 5
강남 6
강북 7
서초 8
Name: 3월, dtype: int32
강남 6
강북 7
서초 8
Name: 3월, dtype: int32
강남 강북 서초
1월 0 1 2
2월 3 4 5
3월 6 7 8
1월 2
2월 5
3월 8
Name: 서초, dtype: int32
강북 서초
2월 4 5
3월 7 8