Programlamasınav132
Soru İncelemesi:
Görselde bir Python kod parçası ve bu kod üzerinde yapılacak bir işlem soruluyor. Soru, geliri 10,000’in üzerinde olan değerleri bulup, bu değerleri geri kalan diğer gelir sütununun ortalamasıyla değiştirecek bir Python kodunu soruyor.
Mevcut Kod Yapısı:
data = {
'Ad': ['Polat', 'Serhat', 'Ahmet', 'İlayda', 'Buse'],
'Gelir': [3000, 3200, 120000, 2800, 3100]
}
df = pd.DataFrame(data)
Bu kodda bir veri çerçevesi oluşturulmuştur. “Gelir” sütunundaki 10,000’i aşan değerler değiştirilmek istenmektedir.
Cevap Seçenekleri İncelemesi:
-
Seçenek 1: “Hiçbiri” - Bu seçenek, verilen çözümlerden hiçbirinin doğru olmadığını öne sürer.
-
Seçenek 2:
mean_value = df['Gelir'][df['Gelir'] <= 10000].mean() df.loc[df['Gelir'] > 10000, 'Gelir'] = mean_valueBurada, 10,000’den küçük veya eşit “Gelir” değerlerinin ortalamasını alarak, 10,000’i aşan değerlerin bu ortalamayla değiştirilmesi sağlanır.
-
Seçenek 3:
mean_value = df['Gelir'][df['Gelir'] > 10000].mean() df['Gelir'] = df['Gelir'].fillna(mean_value)10,000’i aşan değerlerin ortalamasını hesaplar. Ancak bu değerler zaten açığa çıkmak istenmediği için verilen çözüm hatalıdır.
-
Seçenek 4:
df.loc[df['Gelir'] > 10000, 'Gelir'] = df['Gelir'].mean()Tüm “Gelir” değerlerinin ortalamasını alarak, 10,000’i aşan değerleri bu ortalamayla değiştirir, soru şartlarına uygundur fakat belirtilen düzenleme sadece 10,000’in altındaki gelirlerle hazırlanmalıydı.
-
Seçenek 5:
df['Gelir'] = df['Gelir'].apply(lambda x: df['Gelir'].mean() if x > 10000 else x)Bu çözüm, her “Gelir” değerini kontrol eder ve 10,000’in üzerine çıkan değerleri ortalama ile değiştirir. Teorik olarak doğru fakat yine tüm sütunun ortalamasıyla değiştirir.
Final Cevap:
Sorunun doğru cevabı, 2. seçenek olarak doğru tanımlanabilir. Çünkü sadece belirtilen sınırlar dahilinde, istenen koşullara uygun bir ortalama hesaplar ve gerekli değerleri sadece bu ortalamayla değiştirir.
