Pandalar'da bir koşula dayalı yeni bir sütun nasıl oluşturulur?
Genellikle belirli koşullara bağlı olarak pandas DataFrame’de yeni bir sütun oluşturmak isteyebilirsiniz.
Bu eğitimde, aşağıdaki DataFrame kullanılarak bunun nasıl yapılacağına ilişkin birkaç örnek sunulmaktadır:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86], 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19], 'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]}) #view DataFrame df rating points assists rebounds 0 90 25 5 11 1 85 20 7 8 2 82 14 7 10 3 88 16 8 6 4 94 27 5 6 5 90 20 7 9 6 76 12 6 6 7 75 15 9 10 8 87 14 9 10 9 86 19 5 7
Örnek 1: İkili değerlere sahip yeni bir sütun oluşturma
Aşağıdaki kod, belirli bir satırdaki noktalar 20’den büyükse değerin “evet”, aksi halde “hayır” olduğu “İyi” adlı yeni bir sütunun nasıl oluşturulacağını gösterir:
#create new column titled 'Good' df['Good'] = np. where (df['points']>20, ' yes ', ' no ') #view DataFrame df rating points assists rebounds Good 0 90 25 5 11 yes 1 85 20 7 8 no 2 82 14 7 10 no 3 88 16 8 6 no 4 94 27 5 6 yes 5 90 20 7 9 no 6 76 12 6 6 no 7 75 15 9 10 no 8 87 14 9 10 no 9 86 19 5 7 no
Örnek 2: Birden çok değere sahip yeni bir sütun oluşturma
Aşağıdaki kod, değerin olduğu “İyi” adlı yeni bir sütunun nasıl oluşturulacağını gösterir:
- Puanlar ≥ 25 ise “Evet”
- 15 ≤ puan < 25 ise “Belki”
- Puan < 15 ise “Hayır”
#define function for classifying players based on points def f(row): if row['points'] < 15: val = 'no' elif row['points'] < 25: val = 'maybe' else : val = 'yes' return val #create new column 'Good' using the function above df['Good'] = df. apply (f, axis=1) #view DataFrame df rating points assists rebounds Good 0 90 25 5 11 yes 1 85 20 7 8 maybe 2 82 14 7 10 no 3 88 16 8 6 maybe 4 94 27 5 6 yes 5 90 20 7 9 maybe 6 76 12 6 6 no 7 75 15 9 10 maybe 8 87 14 9 10 no 9 86 19 5 7 maybe
Örnek 3: Mevcut bir sütunla karşılaştırmaya dayalı yeni bir sütun oluşturma
Aşağıdaki kod, değerin olduğu “assist_more” adında yeni bir sütunun nasıl oluşturulacağını gösterir:
- Asist > ribaund ise “Evet”.
- Aksi takdirde ‘Hayır’.
#create new column titled 'assist_more' df['assist_more'] = np. where (df['assists']>df['rebounds'], ' yes ', ' no ') #view DataFrame df rating points assists rebounds assist_more 0 90 25 5 11 no 1 85 20 7 8 no 2 82 14 7 10 no 3 88 16 8 6 yes 4 94 27 5 6 no 5 90 20 7 9 no 6 76 12 6 6 no 7 75 15 9 10 no 8 87 14 9 10 no 9 86 19 5 7 no
Daha fazla Python eğitimini burada bulabilirsiniz.