728x90
파이썬에서 인덱싱과 슬라이싱은 데이터를 효과적으로 조작하고 다루는 데 매우 중요한 기술입니다. 이 기능들을 사용하여 리스트, 튜플, 문자열 등의 시퀀스형 자료 구조를 다룰 수 있습니다.
1. 인덱싱(Indexing)
파이썬에서 데이터를 접근하는 기초적인 방법
데이터 프레임에서 특정 행 또는 열에 접근하여 데이터를 선택하는 방법
인덱싱 특징
- 앞에서부터 시작하면 인덱스는 0부터 시작
- 뒤에서부터 시작하면 인데스는 -1부터 시작
"Hello World" 라는 문자가 있습니다. 이를 변수 a에 저장 한다면 아래와 같이 번호가 매겨져 있을 것입니다.
이를 보고 알 수 있는 것은, "파이썬은 0부터 숫자를 센다." 입니다.
- a[0] = 'H'
- a[3] = 'l'
- a[11] = '!'
- a[-1] = '!'
이렇듯 a[번호]를 통해 문자열 안의 특정한 값을 뽑아낼 수 있습니다.
데이터 프레임에서의 인덱싱
데이터프레임에서는 .loc[], .iloc[]을 통해 특정 행 또는 열에 접근할 수 있습니다. .loc[]은 인덱스 이름을 기반으로, .iloc[]은 숫자 인덱스를 기반으로 데이터에 접근합니다.
import pandas as pd
# 데이터프레임 생성
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
'Age': [28, 35, 45, 32],
'City': ['New York', 'Paris', 'London', 'Berlin']}
df = pd.DataFrame(data)
# 첫 번째 행에 접근
print(df.loc[0])
2. 슬라이싱(Slicing)
슬라이싱이란?
시퀀스 데이터에서 일부분을 잘라내는 것을 의미합니다. 데이터프레임에서는 특정 행이나 열을 선택하여 추출하는 데 사용합니다.
- 시작 인덱스는 포함
- 끝 인덱스는 포함 X
my_list = [10, 20, 30, 40, 50]
print(my_list[1:4]) # [20, 30, 40]
print(my_list[:3]) # [10, 20, 30]
print(my_list[2:]) # [30, 40, 50]
new_list = my_list[:] # 리스트를 복사
슬라이싱 스텝
세 번째 인자인 스텝을 사용하여 인덱스의 간격을 지정할 수 있습니다.
print(my_list[::2]) # [10, 30, 50]
음수 스텝
리스트를 역순으로 슬라이싱할 수 있습니다.
print(my_list[::-1]) # [50, 40, 30, 20, 10]
데이터 추출과 조작을 위한 슬라이싱
데이터 분석에서 조건에 따라 데이터를 선택해야 하는 경우가 있습니다. 이를 위해 불리언 인덱싱과 조건을 활용할 수 있습니다.
# Age가 30 이상인 행 선택
print(df[df['Age'] >= 30])
# 'Age' 열에서 30세 이상인 행의 'Name' 열 선택
print(df.loc[df['Age'] >= 30, 'Name'])
또한, NumPy를 사용하여 다차원 배열을 다룰 때도 슬라이싱이 유용합니다. 다차원 배열에서는 각 차원별로 슬라이싱이 가능합니다.
import numpy as np
# 2차원 배열 생성
arr = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 첫 번째 열 선택
print(arr[:, 0])
# 두 번째 행 선택
print(arr[1, :])
728x90
반응형
'IT > Python' 카테고리의 다른 글
[파이썬] 튜플(Tuple) 자료형 (1) | 2024.03.12 |
---|---|
[파이썬] 리스트(List) 자료형 (0) | 2024.03.12 |
[파이썬] 포매팅 (0) | 2024.03.11 |
[파이썬] 문자열 관련 함수 (0) | 2024.03.11 |
[파이썬] 자료형 (0) | 2024.03.06 |