데이터분석 study/데이터 전처리&시각화

TIL_24.07.18_데이터 전처리 2

justdata 2024. 7. 18. 20:49

▶데이터 선택 

    ● .iloc[로우,컬럼] : 인덱스 번호로 선택하기

         - 행번호(로우)와 열번호(컬럼)를 통해 특정 행과 열 데이터를 선택할 수 있다.

import pandas as pd

# 샘플 데이터프레임 생성
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [10, 20, 30, 40, 50],
    'C': [100, 200, 300, 400, 500]
}
df = pd.DataFrame(data)

selected_data = df.iloc[1:4, 0:2]
#인덱스 1부터 3까지의 행과, 인덱스 0부터 1까지의 열을 가져온다.
print(selected_data)

 

● .loc[로우, 컬럼] : 이름으로 선택하기

      - 인덱스가 번호가 아니고 특정 문자일 경우에 사용

data.loc['행이름', '컬럼명']
#행이름과 컬럼명을 통해서도 특정 데이터를 선택할 수 있다.

 

 

# pandas를 불러오고 
# 샘플 데이터프레임(df)을 생성했다고 가정하고, 

selected_data = df.loc['b':'d', 'A':'B']
#레이블 'b'부터 'd'까지 행을 가져오고, 'A'부터 'B'까지의 열을 선택
print(selected_data)

 

● 전체 컬럼을 가져오거나 여러개의 컬럼을 선택할 경우

     - 리스트  슬라이싱을 활용해서 선택 가능

data.loc[:, '컬럼명']

#또는 데이터프레임['컬럼명']으로도 동일한 값을 선택할 수 있다.
data['컬럼명']

#여러개의 컬럼을 선택할 경우에도 리스트를 활용해서 선택
data[['컬럼명1', '컬럼명2','컬럼명3']]

#여러개의 컬럼을 선택할 때, 내가 원하는 순서대로 데이터 선택가능

 

 

2개 이상의 셀을 선택할 경우

     - 리스트 형태를 활용해서 데이터를 선택

# 2개 컬럼명을 선택할 경우
data.loc['행이름',['컬럼명1','컬럼명2']]

# 2개 행이름을 선택할 경우
data.loc[['행이름1','행이름2'],'컬럼명1']

# 리스트 슬라이싱 : 을 활용해서 특정 범위를 지정하여 선택
data.loc['행이름', '컬럼명1' :]

 

▶ 특정 조건을 만족하는 데이터를 선택할 경우

    ● boolean indexing

        - 조건을 이용하여 데이터프레임에서 특정 조건을 만족하는

          행을 선택하는 방법

        - 데이터를 필터링하거나 원하는 조건을 만족하는 행을 추출

         - 조건식을 사용하여 데이터프레임 인덱싱

 

      ○ 여러 조건으로 필터링 

df[(df['age'] >= 30) & (df['gender'] == 'Male')]
# 'age' 열에서 30세 이상이면서 'gender'열이 'Male'인 행 필터링
# or 조건을 걸 때는 ' | ' 사용

 

 

      ○ 조건에 따른 특정 컬럼 필터링

df.loc[df['age'] >= 30, 'name']

# 'age'열에서 30세 이상인 경우의 'name'열만 선택

 

      ○ isin()을 활용한 필터링

df[df['gender'].isin(['Male', 'Female'])]
# 'gender'열에서 'Male' 또는 'Female'인 행 필터링

#데이터 프레임 전체에서 여러 조건을 확인하는 필터링
#예시) 샘플 데이터 프레임이 딕셔너리 타입일 때
result = df.isin{'A' : [1,3], 'B' : ['apple', 'orange']}
print(result)

 

      ● 데이터 추가하기

         - 데이터프레임에 컬럼 추가하기

df = pd.DataFrame()

df['컬러명'] = data

#df 라는 데이터프레임에 '컬럼명'이라는 이름의 컬럼이 추가되고,
#해당 컬럼에 data라는 값이 추가된다.
#하나의 값인 경우 --> 전체 모두 동일한 값 적용

 

          - 신규 컬럼 추가하기

df = pd.DataFrame()

df['EPL'] = 100
df['MLS'] = 60
df['NBA'] = 70

df

df['kfc'] = [50,10,30]

# 행 수를 맞춰서 입력해줘야 함

# 컬럼을 여러 조건 및 계산식을 통해 산출 값으로도 추가 가능
df['ABC'] = (df['EPL'] + df['NBA']) * df['MLS'] *2