Data Science/python

[Pandas] Dataframe 행 또는 열을 제거

오기오기 2024. 4. 26. 14:09
728x90
반응형

Pandas Dataframe에서 행 또는 열을 제거하는 법

 

Dataframe에서 행 또는 열을 제거하려면 dataframe에서 사용가능한 drop() 메소드를 이용해야 합니다.

제거할 행이나 열을 지정하고, axis 매개변수를 사용하여 제거할 대상이 행인지 열인지를 지정합니다. 

 

Dataframe Axis(축)

  • 행은 axis=0으로 나타내고
  • 열은 axis=1으로 나타납니다.

 

Drop() 메소드 매개변수

  • index - 삭제할 행의 목록
  • axis=0 - dataframe의 행이 삭제될 것이라는 표기
  • inplace=True/False
    • inplace=True를 사용하면 DataFrame이 직접 수정되며, 새로운 DataFrame 객체가 반환되지 않습니다.
    • inplace=False를 사용하면 새로운 DataFrame이 반환됩니다.

1. 행 제거

 

1) 하나의 행 제거 

import pandas as pd

# DataFrame 생성
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)

# 인덱스를 사용하여 특정 행 제거
df.drop(index=[1], inplace=True)

print(df)

 

2) 인덱스 범위 활용하여 여러 행 제거

 

Dataframe에 df.index() 메소드를 사용하여 행의 범위를 생성 / 그리고나서 그 범위를 drop() 메소드로 넘겨 아래와 같이 행을 삭제

import pandas as pd

# 예시 DataFrame 생성
data = {'A': [1, 2, 3, 4, 5],
        'B': [6, 7, 8, 9, 10]}
df = pd.DataFrame(data)

# 삭제할 행의 인덱스 범위 생성 (예: 1부터 3까지의 범위)
index_range = range(1, 4)

# 인덱스 범위를 사용하여 행 삭제
df.drop(index=index_range, inplace=True)

print(df)

 

3) iloc 활용하여 여러행 제거

 

iloc[]은 Pandas에서 위치 기반 인덱싱을 수행하는 메소드입니다.

 

즉, 정수 인덱스를 사용하여 DataFrame의 특정 행이나 열을 선택합니다.

 

 

iloc[]을 사용할 때 콜론(:)을 사용하여 행이나 열의 범위를 지정할 수 있습니다. 콜론 앞에 있는 값은 시작 인덱스를, 콜론 뒤에 있는 값은 종료 인덱스를 나타냅니다. 범위를 지정할 때 콜론 앞이나 뒤에 값이 없으면, 시작 인덱스나 종료 인덱스는 해당 차원의 시작 또는 끝까지로 간주됩니다.

 

예를 들어, iloc[2:5]는 인덱스 2부터 인덱스 4까지(인덱스 5는 포함되지 않음)의 행을 선택합니다.

 

import pandas as pd

# 예시 DataFrame 생성
data = {'A': [1, 2, 3, 4, 5],
        'B': [6, 7, 8, 9, 10]}
df = pd.DataFrame(data)

# 특정 인덱스를 사용하여 행 선택
index_to_remove = 2  # 제거할 행의 인덱스 (예: 2)
selected_row = df.iloc[index_to_remove]  # 선택한 행

print("선택한 행:")
print(selected_row)

# 선택한 행 제거
df.drop(index=index_to_remove, inplace=True)

print("\n제거 후 DataFrame:")
print(df)

 

4) 여러 조건을 가진 행을 삭제

 

주어진 조건을 충족하는 행의 인덱스를 선택하고 이를 drop() 메소드로 전달하여 행을 삭제

 

예를 들어, DataFrame에서 열의 값이 X보다 크고 Y보다 작은 행을 삭제하기위해서 :

  1. 조건을 만족하는 행의 인덱스 선택
  2. 선택한 인덱스를 사용하여 해당 행 삭제
import pandas as pd

# 예시 DataFrame 생성
data = {'A': [1, 2, 3, 4, 5],
        'B': [6, 7, 8, 9, 10]}
df = pd.DataFrame(data)

# 조건 설정
condition = (df['A'] > 2) & (df['B'] < 10)  # 열 'A'의 값이 2보다 크고, 열 'B'의 값이 10보다 작은 조건

# 조건을 만족하는 행의 인덱스 선택
indexes_to_drop = df[condition].index

# 선택한 인덱스를 사용하여 해당 행 삭제
df.drop(index=indexes_to_drop, inplace=True)

print(df)

 

위 코드에서는 열 'A'의 값이 2보다 크고, 열 'B'의 값이 10보다 작은 행을 삭제합니다. 이를 위해 먼저 조건을 설정하고, 이 조건을 만족하는 행의 인덱스를 선택한 후 해당 행을 삭제합니다. 결과적으로 조건을 만족하지 않는 행만 남게 됩니다.

 

 

2. 열 제거

import pandas as pd

# DataFrame 생성
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)

# 열 이름을 사용하여 특정 열 제거
df.drop(columns=['B'], inplace=True)

print(df)

 

728x90
반응형