- 열단위 인덱싱
[ ]- 인덱서(loc, iloc)를 사용하지 않는 행단위 인덱싱
[ : ]- 개별 요소 접근
[열][행]
- 열 라벨(컬럼명)을 키값으로 생각하고 인덱싱
[ ]기호 또는df.열이름을 이용
[ ]는 열 위주 인덱싱이 원칙- 인덱스로 라벨값을 하나 넣으면 시리즈 객체가 반환
- 라벨의 배열이나 리스트를 넣으면 부분적 df 가 반환
예시 데이터
data = {
'2015': [9904312, 3448737, 2890451, 2466052],
'2016': [9631482, 3393191, 2632035, 2000002],
'2017': [9762546, 3512547, 2517680, 2456016],
'2018': [9912345, 1513057, 2648043, 2504991]
}
df = pd.DataFrame(data, index=['서울','부산','인천','대구'])
df.columns.name = '연도'
df.index.name = '도시'
df['지역'] = ['수도권', '경상권', '경상권', '수도권']
df
- 출력
'2015' 열 출력
df['2015']
- 출력
도시
서울 9904312
부산 3448737
인천 2890451
대구 2466052
Name: 2015, dtype: int64
열(컬럼)이름이 문자열인 경우
KeyError 가 발생한다.df_int = pd.DataFrame(np.arange(1, 10).reshape(3, 3))
df_int
- 출력
0열 출력
df_int[0]
- 출력
0 1
1 4
2 7
Name: 0, dtype: int64
KeyError 가 발생한다.df_int.columns = 'A B C'.split()
df_int
- 출력
df_int[0]
- 출력
KeyError: 0
Series 가 아닌 DataFrame 형태로 출력된다.일반 인덱싱
df['2015']
- 출력
도시
서울 9904312
부산 3448737
인천 2890451
대구 2466052
Name: 2015, dtype: int64
리스트 형태 인덱싱
df[['2015']]
- 출력
df[['2015', '2017']]
- 출력
열(컬럼)이름이 수치형인 경우
df_int.columns = range(3)
df_int[[0, 2]]
- 출력
- 슬라이싱(slicing) 사용
- 열단위 인덱싱과 구분하기 위해
- 인덱스 값이 문자(label)인 경우 문자 슬라이싱
- 인덱서(loc, iloc) 사용
df['서울': '서울']
- 출력
df[:'부산']
- 출력
행(인덱스)이름이 수치형인 경우
df_int[1:3]
- 출력
df['열']['행'] 형태로 사용한다.df['2015']['서울']
- 출력
np.int64(9904312)
df['서울':'서울']['2015']
- 출력
도시
서울 9904312
Name: 2015, dtype: int64
df[['2015', '2017']]['서울': '서울']
- 출력
