Pandas DataFrame에서 열 값을 기준으로 행을 삭제하는 방법

  1. Pandas Dataframe의 열 ​​값에서 행을 삭제하는.drop 메소드
  2. Pandas dataframe에서 행을 삭제하는boolean masking 방법

loc유무에 관계없이.dropboolean masking을 사용하여 열 값의 조건에 따라 Pandas DataFrame 행을 삭제하는 메소드를 소개합니다.

Pandas Dataframe의 열 ​​값에서 행을 삭제하는.drop 메소드

.drop 메소드는 단일 또는 열 이름 목록을 허용하고 행 또는 열을 삭제합니다. 행의 경우axis = 0 매개 변수를 설정하고 열의 경우axis = 1을 설정합니다 (기본적으로axis0). 또한 Pandas dataframe의 열 ​​값에 적용되는 조건을 기반으로 일련의TrueFalse를 얻을 수 있습니다.

예제 코드:

# python 3.x
import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ) ,
             ('Mango', 24, 'No' ) ,
             ('banana', 14, 'No' ) ,
             ('Apple', 44, 'Yes' ) ,
             ('Pineapple', 64, 'No') ,
             ('Kiwi', 84, 'Yes')  ]
  
#Create a DataFrame object
df = pd.DataFrame(fruit_list, columns = 
                  ['Name' , 'Price', 'Stock']) 
# Get names of indexes for which column Stock has value No
indexNames = df[ df['Stock'] == 'No' ].index
# Delete these row indexes from dataFrame
df.drop(indexNames , inplace=True)
print(df)

산출:

     Name  Price Stock
0  Orange     34   Yes
3   Apple     44   Yes
5    Kiwi     84   Yes

df.drop() 메소드 안에.loc을 사용하여 비슷한 결과를 얻을 수도 있습니다.

df.drop(df.loc[df['Stock']=='Yes'].index, inplace=True)

여러 열 값을 기준으로 행을 삭제할 수도 있습니다. 위의 예에서 price> = 30price <= 70 인 행을 삭제할 수 있습니다.

예제 코드:

# python 3.x
import pandas as pd
# List of Tuples
fruit_list = [ ('Orange', 34, 'Yes' ) ,
             ('Mango', 24, 'No' ) ,
             ('banana', 14, 'No' ) ,
             ('Apple', 44, 'Yes' ) ,
             ('Pineapple', 64, 'No') ,
             ('Kiwi', 84, 'Yes')  ]
  
#Create a DataFrame object
df = pd.DataFrame(fruit_list, columns = 
                  ['Name' , 'Price', 'Stock'])
indexNames = df[ (df['Price'] >= 30)
                & (df['Price'] <= 70) ].index
df.drop(indexNames , inplace=True)
print(df)

산출:

     Name  Price Stock
1   Mango     24    No
2  banana     14    No
5    Kiwi     84   Yes

가격이 30보다 작고 <70보다 작은 행은 삭제되었습니다.

Pandas dataframe에서 행을 삭제하는boolean masking 방법

부울 마스킹은 열 값을 기준으로 Pandas dataframe에서 행을 삭제하는 가장 쉽고 간단한 방법입니다.

예제 코드:

# python 3.x
import pandas as pd
# List of Tuples
fruit_list = [ ('Orange', 34, 'Yes' ) ,
             ('Mango', 24, 'No' ) ,
             ('banana', 14, 'No' ) ,
             ('Apple', 44, 'Yes' ) ,
             ('Pineapple', 64, 'No') ,
             ('Kiwi', 84, 'Yes')  ]
  
#Create a DataFrame object
df = pd.DataFrame(fruit_list, columns = 
                  ['Name' , 'Price', 'Stock'])
print(df[df.Price > 40])
print('............................')
print(df[(df.Price > 40) & (df.Stock== 'Yes')])  

산출:

        Name  Price Stock
3      Apple     44   Yes
4  Pineapple     64    No
5       Kiwi     84   Yes
............................
    Name  Price Stock
3  Apple     44   Yes
5   Kiwi     84   Yes

관련 문장 - Pandas DataFrame

  • 한 열의 값으로 Pandas DataFrame 을 정렬하는 방법
  • Pandas 그룹 및 합계를 집계하는 방법