pandas dataframe filter

ÆÇ´Ù½º µ¥ÀÌÅÍÇÁ·¹ÀÓ¿¡¼­ µ¥ÀÌÅÍ °Ë»öÇÏ´Â ¹æ¹ý(ÇÊÅ͸µ)Àº °£´ÜÇÏ´Ù.
Boolean Indexing(ºÒ¸®¾ð À妽Ì)°ú isin() ¸Þ¼Òµå µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.

1. Boolean Indexing

¿¹1) ±¹¾î Á¡¼ö°¡ 50Á¡ ÀÌ»óÀÇ °ª¸¸ °¡Á®¿Â´Ù.
import pandas as pd

data1 = [[10, 15, 100], [100, 80, 10], [80, 90, 95]]     
df = pd.DataFrame(data1, index=['ö¼ö', '¿µÈñ', '±æµ¿'], columns=['±¹¾î', '¿µ¾î', '¼öÇÐ'])

dfKor = df[df['±¹¾î'] > 50]

print(df)
print('----------------------------------------------------------')
print(dfKor)

C¾ð¾î·Î »ý°¢Çϸé 0À̳ª 1ÀÇ À妽º °ªÀ» ¹ÝÇÑ ÇÏ°ÚÁö¸¸ DataFrame¿¡¼­´Â ÇÊÅ͸µÀÌ´Ù.
±âÁ¸¾ð¾îÀÇ ½À°üÀ» ¹ö¸®¸é Æí¸®ÇÏ°í °£´ÜÇØ º¸ÀδÙ.

°á°ú)
     ±¹¾î  ¿µ¾î   ¼öÇÐ
ö¼ö   10  15  100
¿µÈñ  100  80   10
±æµ¿   80  90   95
----------------------------------------------------------
     ±¹¾î  ¿µ¾î  ¼öÇÐ
¿µÈñ  100  80  10
±æµ¿   80  90  95

¿¹2) ±¹¾î¿Í ¼öÇÐ Á¡¼ö µÑ´Ù 50Á¡ÀÌ»óÀÎ Çлý¸¸ °¡Á®¿Â´Ù.
import pandas as pd

data1 = [[10, 15, 100], [100, 80, 10], [80, 90, 95]]     
df = pd.DataFrame(data1, index=['ö¼ö', '¿µÈñ', '±æµ¿'], columns=['±¹¾î', '¿µ¾î', '¼öÇÐ'])

mask = (df['±¹¾î'] > 50) & (df['¼öÇÐ'] > 50)
dfKor = df[mask]
print(dfKor)

°á°ú)
    ±¹¾î  ¿µ¾î  ¼öÇÐ
±æµ¿  80  90  95

¿¹3) ±¹¾î¿Í ¼öÇÐ Á¡¼ö µÑ´Ù 50Á¡ÀÌ»óÀÎ Çлý¸¸ °¡Á®¿À°í, ±¹¾î , ¼öÇÐ Á¡¼ö¸¸ Ç¥½ÃÇÑ´Ù.
import pandas as pd

data1 = [[10, 15, 100], [100, 80, 10], [80, 90, 95]]     
df = pd.DataFrame(data1, index=['ö¼ö', '¿µÈñ', '±æµ¿'], columns=['±¹¾î', '¿µ¾î', '¼öÇÐ'])

mask = (df['±¹¾î'] > 50) & (df['¼öÇÐ'] > 50)
#dfKor = df.loc[mask, :]  #Àüü Ç¥½Ã
dfKor = df.loc[mask, ['±¹¾î', '¼öÇÐ']]
print(dfKor)

dfKor = df.loc[mask, ['±¹¾î', '¼öÇÐ']]
ÇØ´çÇÏ´Â Á¶°ÇÀÇ Çà¿¡¼­ '±¹¾î', '¼öÇÐ'¸¸ Ç¥½Ã ÇÑ´Ù.

°á°ú)
    ±¹¾î  ¼öÇÐ
±æµ¿  80  95

¿¹4) ±¹¾î¿Í ¼öÇÐ Á¡¼ö µÑ´Ù 50Á¡ÀÌ»óÀÎ Çлý¸¸ °¡Á®¿À°í, ±¹¾î , ¼öÇÐ Á¡¼ö¸¸ Ç¥½ÃÇÑ´Ù.
¿¹3°ú °°Àº ÄÚµå·Î mask¸¦ ºÐ¸®ÇÏ¿© ÇÊÅ͸µ ÇÏ°í ÀÖ´Ù.
import pandas as pd

data1 = [[10, 15, 100], [100, 80, 10], [80, 90, 95]]     
df = pd.DataFrame(data1, index=['ö¼ö', '¿µÈñ', '±æµ¿'], columns=['±¹¾î', '¿µ¾î', '¼öÇÐ'])

mask1 = df['±¹¾î'] > 50
mask2 = df['¼öÇÐ'] > 50
dfSelect = df[mask1 & mask2]
print(dfSelect)

°á°ú)
    ±¹¾î  ¼öÇÐ
±æµ¿  80  95

2. isin() ¸Þ¼Òµå

ƯÁ¤ÇÑ ´Ù¼öÀÇ °ªÀ» ã´Â´Ù¸é isin ¸Þ¼Òµå ¹æ¹ýÀ» »ç¿ëÇÑ´Ù.

¿¹)±¹¾î Á¡¼ö°¡ 100, 80 Á¡ÀÎ »ç¶÷¸¸ °¡Á®¿Â´Ù.
import pandas as pd

data1 = [[10, 15, 100], [100, 80, 10], [80, 90, 95]]     
df = pd.DataFrame(data1, index=['ö¼ö', '¿µÈñ', '±æµ¿'], columns=['±¹¾î', '¿µ¾î', '¼öÇÐ'])

have = df['±¹¾î'].isin([100, 80])
dfKor = df[have]
print(dfKor)

°á°ú)
     ±¹¾î  ¿µ¾î  ¼öÇÐ
¿µÈñ  100  80  10
±æµ¿   80  90  95