판다스(Pandas) 라이브러리의 DataFrame에서 슬라이싱(slicing)은 특정 행이나 열을 선택하는 과정을 말합니다. 슬라이싱을 사용하면 큰 데이터셋에서 필요한 부분만 추출할 수 있어 데이터 분석이 훨씬 편리해집니다. 슬라이싱에는 주로 두 가지 방법이 사용됩니다: 위치 기반 인덱싱과 레이블 기반 인덱싱입니다.
1. slice
1. 위치 기반 인덱싱 (Position-based indexing) - `.iloc[]` 사용
- `iloc[]`는 위치 기반 인덱싱을 위해 사용되며, 정수 인덱스를 사용해 데이터를 선택합니다.
- 예를 들어, `df.iloc[0:5, 0:2]`는 처음 5행과 처음 두 열을 선택합니다.
2. 레이블 기반 인덱싱 (Label-based indexing) - `.loc[]` 사용
- `loc[]`는 레이블 기반 인덱싱을 위해 사용되며, 레이블(열의 이름 또는 행의 인덱스)을 사용해 데이터를 선택합니다.
- 예를 들어, `df.loc[0:5, 'age':'salary']`는 인덱스 0부터 5까지, 그리고 'age' 열부터 'salary' 열까지의 데이터를 선택합니다.
두 방법의 주요 차이점은 `iloc[]`가 순수하게 정수 기반의 위치를 사용하는 반면, `loc[]`는 레이블을 사용한다는 것입니다. 또한, `loc[]`에서는 범위의 끝이 포함되지만 (`start:end`에서 `end` 포함), `iloc[]`에서는 범위의 끝이 포함되지 않습니다 (`start:end`에서 `end` 직전까지).
슬라이싱을 사용할 때 명심해야 할 중요한 점은, 원본 DataFrame을 변경하지 않고 새로운 DataFrame 또는 Series를 반환한다는 것입니다. 원본 데이터를 변경하려면 해당 슬라이스에 새로운 값을 할당해야 합니다.
다음은 Pandas DataFrame에서 간단한 슬라이싱 예제입니다:
import pandas as pd
# 샘플 데이터 생성
data = {
'Name': ['Anna', 'Bob', 'Charlie', 'Diana', 'Edward'],
'Age': [23, 35, 45, 36, 50],
'Salary': [70000, 80000, 120000, 110000, 90000]
}
df = pd.DataFrame(data)
# 첫 3행 선택
print(df.iloc[0:3])
# 'Age'와 'Salary' 열 선택
print(df.loc[:, 'Age':'Salary'])
이 코드는 DataFrame `df`의 첫 3행과 'Age' 및 'Salary' 열을 선택하는 방법을 보여줍니다.
2. rambda
판다스(Pandas)의 DataFrame에서 람다(lambda) 함수는 데이터를 처리하고 변형하는 데 매우 유용하게 사용됩니다. 람다 함수는 이름이 없는 한 줄짜리 함수로, 간단한 연산을 위해 일시적으로 사용되곤 합니다. 판다스에서는 주로 apply(), map(), applymap() 같은 메소드와 함께 사용되어 데이터프레임이나 시리즈의 각 요소를 효율적으로 처리할 수 있게 해줍니다.
- 람다 함수의 기본 구조
- DataFrame과 함께 사용하기
- 람다 함수의 장점과 주의사항
다음은 Pandas DataFrame에서 람다 함수를 사용하는 간단한 예제입니다:
import pandas as pd
# 샘플 데이터 생성
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# 열 A의 각 요소에 2를 곱함
df['A'] = df['A'].apply(lambda x: x * 2)
# 모든 요소에 10을 더함
df = df.applymap(lambda x: x + 10)
print(df)
이 예제에서는 apply()와 applymap() 메소드를 사용하여 DataFrame의 데이터를 람다 함수로 처리하는 방법을 보여줍니다.