판다스(Pandas) 데이터프레임의 데이터 인덱싱과 슬라이싱은 데이터프레임의 특정 부분에 접근하고 조작하는 방법을 제공합니다.
데이터프레임은 2차원 구조이기 때문에 행과 열의 인덱스를 사용하여 원하는 데이터에 접근할 수 있습니다.
이를 통해 데이터프레임의 일부를 선택하거나 조작할 수 있습니다.
아래에는 판다스 데이터프레임에서 데이터를 인덱싱하고 슬라이싱하는 주요 방법을 상세히 설명합니다.
열 인덱싱
단일 열 선택
df['열 이름']
형식으로 해당 열을 선택합니다.
예를 들어, ‘name’ 열을 선택하는 방법은 다음과 같습니다.
name_column = df['name']
다중 열 선택
여러 개의 열을 선택하려면 열 이름을 리스트로 지정합니다.
예를 들어, ‘name’과 ‘age’ 열을 선택하는 방법은 다음과 같습니다.
columns = ['name', 'age']
selected_columns = df[columns]
행 인덱싱
단일 행 선택
df.loc[인덱스]
또는 df.iloc[인덱스]
형식으로 해당 행을 선택합니다. loc
는 라벨 기반 인덱싱을 사용하고, iloc
은 위치 기반 인덱싱을 사용합니다.
예를 들어, 인덱스 0에 해당하는 행을 선택하는 방법은 다음과 같습니다.
row = df.loc[0]
다중 행 선택
여러 개의 행을 선택하려면 인덱스를 리스트로 지정합니다.
예를 들어, 인덱스 0과 2에 해당하는 행을 선택하는 방법은 다음과 같습니다.
rows = [0, 2]
selected_rows = df.loc[rows]
행과 열 동시 인덱싱
df.loc[행 인덱스, 열 인덱스]
형식으로 행과 열을 동시에 선택합니다.
예를 들어, 인덱스 0과 1에 해당하는 행의 ‘name’ 열을 선택하는 방법은 다음과 같습니다.
selected_data = df.loc[[0, 1], 'name']
슬라이싱
행 슬라이싱
df[start:end]
형식으로 행을 슬라이싱합니다. start
는 시작 인덱스(포함), end
는 끝 인덱스(제외)입니다.
예를 들어, 인덱스 0부터 2까지의 행을 선택하는 방법은 다음과 같습니다.
sliced_rows = df[0:3] # 인덱스 0, 1, 2에 해당하는 행 선택
열 슬라이싱
df.loc[:, '시작 열':'끝 열']
형식으로 열을 슬라이싱합니다.
예를 들어, ‘name’부터 ‘age’ 열까지의 열을 선택하는 방법은 다음과 같습니다.
sliced_columns = df.loc[:, 'name':'age']
특정 행과 열의 부분 데이터프레임 선택
df.loc[행 슬라이싱, 열 슬라이싱]
형식으로 특정 행과 열의 부분 데이터프레임을 선택할 수 있습니다.
조건에 따른 인덱싱
단일 조건에 따른 인덱싱
import pandas as pd
data = {'Name': ['John', 'Emma', 'Peter', 'Alice', 'Bob'],
'Age': [25, 28, 30, 22, 32],
'Gender': ['Male', 'Female', 'Male', 'Female', 'Male']}
df = pd.DataFrame(data)
# 'Age'가 30 이상인 행 선택
selected_rows = df[df['Age'] >= 30]
print(selected_rows)
출력 결과
Name Age Gender
2 Peter 30 Male
4 Bob 32 Male
다중 조건에 따른 인덱싱
# 'Age'가 25 이상이고 'Gender'가 'Female'인 행 선택
selected_rows = df[(df['Age'] >= 25) & (df['Gender'] == 'Female')]
print(selected_rows)
출력 결과
Name Age Gender
1 Emma 28 Female
특정 조건에 따른 열 선택
# 'Age'가 30 이상인 경우에만 'Name'과 'Gender' 열 선택
selected_columns = df.loc[df['Age'] >= 30, ['Name', 'Gender']]
print(selected_columns)
출력 결과
Name Gender
2 Peter Male
4 Bob Male
조건에 따른 값을 변경
# 'Age'가 30 이상인 경우 'Age' 값을 40으로 변경
df.loc[df['Age'] >= 30, 'Age'] = 40
print(df)
출력 결과
Name Age Gender
0 John 25 Male
1 Emma 28 Female
2 Peter 40 Male
3 Alice 22 Female
4 Bob 40 Male
조건에 따른 인덱싱을 사용하면 데이터프레임에서 원하는 조건을 충족하는 행 또는 열을 선택하거나 변경할 수 있습니다.
이를 통해 데이터프레임의 특정 부분에 대한 조작이 가능해집니다.
조건은 비교 연산자(>
, <
, >=
, <=
, ==
, !=
)를 사용하여 지정할 수 있으며, 여러 조건을 결합할 때에는 논리 연산자(&
, |
)를 사용합니다.