본문 바로가기
카테고리 없음

PYTHON 판다스(Pandas) 라이브러리의 DataFrame(slice, rambda 기능)

by 일단도전하는준 2024. 3. 27.
반응형

판다스(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 데이터를 람다 함수로 처리하는 방법을 보여줍니다.

반응형