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.