Pandas dataframe'i birden çok koşulda filtreleme


Genellikle bir pandanın DataFrame’ini birden çok koşulda filtrelemek isteyebilirsiniz. Neyse ki Boole işlemlerini kullanarak bunu yapmak kolaydır.

Bu eğitimde aşağıdaki pandalar DataFrame’in çeşitli koşullar altında nasıl filtreleneceğine ilişkin birkaç örnek sunulmaktadır:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'C'],
                   'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]})

#view DataFrame 
df

        team points assists rebounds
0 to 25 5 11
1 to 12 7 8
2 B 15 7 10
3 B 14 9 6
4 C 19 12 6

Örnek 1: “Ve”yi kullanarak birden çok koşulu filtreleme

Aşağıdaki kod, ve ( & ) operatörünü kullanarak DataFrame’in nasıl filtreleneceğini gösterir:

 #return only rows where points is greater than 13 and assists is greater than 7
df[(df. points > 13) & (df. assists > 7)]

        team points assists rebounds
3 B 14 9 6
4 C 19 12 6

#return only rows where team is 'A' and points is greater than or equal to 15
df[(df. team == 'A') & (df. points >= 15)]


        team points assists rebounds
0 to 25 5 11

Örnek 2: “Veya” kullanarak birden çok koşula göre filtreleme

Aşağıdaki kod, veya ( | ) operatörünü kullanarak DataFrame’in nasıl filtreleneceğini gösterir:

 #return only rows where points is greater than 13 or assists is greater than 7
df[(df. dots > 13) | (df. assists > 7)]


        team points assists rebounds
0 to 25 5 11
2 B 15 7 10
3 B 14 9 6
4 C 19 12 6

#return only rows where team is 'A' or points is greater than or equal to 15
df[( df.team == 'A') | (df. points >= 15)]

        team points assists rebounds
0 to 25 5 11
1 to 12 7 8
2 B 15 7 10
4 C 19 12 6

Örnek 3: Bir liste kullanarak birden çok koşulu filtreleme

Aşağıdaki kod, satır değerlerinin bir listede olduğu DataFrame’in nasıl filtreleneceğini gösterir.

 #define a list of values
filter_list = [12, 14, 15]

#return only rows where points is in the list of values
df[df. points . isin (filter_list)]

	team points assists rebounds
1 to 12 7 8
2 B 15 7 10
3 B 14 9 6

#define another list of values
filter_list2 = ['A', 'C']

#return only rows where team is in the list of values
df[df. team . isin (filter_list2)]


        team points assists rebounds
0 to 25 5 11
1 to 12 7 8
4 C 19 12 6

Daha fazla panda eğitimini burada bulabilirsiniz.

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir