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

Yorum ekle

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