Pandalar: birden fazla if else koşulunu kullanarak yeni bir sütun oluşturun
Birden çok if else koşulunu kullanarak bir pandas DataFrame’de yeni bir sütun oluşturmak için aşağıdaki sözdizimini kullanabilirsiniz:
#define conditions conditions = [ (df[' column1 '] == ' A ') & (df[' column2 '] < 20 ), (df[' column1 '] == ' A ') & (df[' column2 '] >= 20 ), (df[' column1 '] == ' B ') & (df[' column2 '] < 20 ), (df[' column1 '] == ' B ') & (df[' column2 '] >= 20 ) ] #define results results = [' result1 ', ' result2 ', ' result3 ', ' result4 '] #create new column based on conditions in column1 and column2 df[' new_column '] = np. select (conditions, results)
Bu özel örnek, değerleri DataFrame’deki sütun1 ve sütun2 değerlerine dayalı olan new_column adında bir sütun oluşturur.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: Pandalarda Birden Çok If Else Koşulunu Kullanarak Yeni Bir Sütun Oluşturma
Çeşitli basketbol oyuncuları hakkında bilgi içeren aşağıdaki pandalar DataFrame’e sahip olduğumuzu varsayalım:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' points ': [15, 18, 22, 24, 12, 17, 20, 28]}) #view DataFrame print (df) team points 0 to 15 1 to 18 2 to 22 3 to 24 4 B 12 5 B 17 6 B 20 7 B 28
Şimdi her oyuncuyu aşağıdaki dört gruptan birinde sınıflandıran, sınıf adı verilen yeni bir sütun oluşturmak istediğimizi varsayalım:
- Takım A ise ve puan < 20 ise Bad_A
- İyi_A eğer takım A ise ve puan ≥ 20 ise
- Takım B ise ve puan < 20 ise Bad_B
- Eğer takım B ise ve puan ≥ 20 ise Good_B
Bunu yapmak için aşağıdaki sözdizimini kullanabiliriz:
import numpy as np #define conditions conditions = [ (df[' team '] == ' A ') & (df[' points '] < 20 ), (df[' team '] == ' A ') & (df[' points '] >= 20 ), (df[' team '] == ' B ') & (df[' points '] < 20 ), (df[' team '] == ' B ') & (df[' points '] >= 20 ) ] #define results results = [' Bad_A ', ' Good_A ', ' Bad_B ', ' Good_B '] #create new column based on conditions in column1 and column2 df[' class '] = np. select (conditions, results) #view updated DataFrame print (df) team points class 0 A 15 Bad_A 1 A 18 Bad_A 2 A 22 Good_A 3 A 24 Good_A 4 B 12 Bad_B 5 B 17 Bad_B 6 B 20 Good_B 7 B 28 Good_B
Sınıf adı verilen yeni sütun, takım ve puan sütunlarındaki değerlere göre her oyuncunun sıralamasını gösteriyor.
Not : NumPy select() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde pandalarda diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
Pandalar: koşula dayalı bir boole sütunu nasıl oluşturulur
Pandalar: Koşullu bir sütundaki değerler nasıl sayılır?
Pandalar: Groupby nasıl kullanılır ve koşullu olarak sayılır