Slicing and Indexing
Pandas, DataFrame'lerde dilimleme (slicing) ve indeksleme (indexing) işlemleri için çeşitli fonksiyonlar sunar. Bu işlemler, veri manipülasyonu ve analizi sırasında belirli alt kümelere erişim sağlar.
.loc ve .iloc
loc ve iloc, Pandas'ta veri seçmek için kullanılan iki güçlü fonksiyondur. loc etiket bazlı, iloc ise pozisyon bazlı veri seçimi yapar.
.loc ile Dilimleme ve İndeksleme
loc, etiket bazlı veri seçimi yapar ve satır/sütun etiketleri kullanılarak veri seçimini sağlar.
Örnek:
import pandas as pd
# DataFrame oluşturma
data = {
"Öğrenci": ["Ali", "Ayşe", "Mehmet", "Fatma", "Ahmet"],
"Matematik": [85, 95, 70, 90, 78],
"Fizik": [90, 85, 80, 92, 75],
"Kimya": [78, 88, 85, 89, 80]
}
df = pd.DataFrame(data)
# Belirli satır ve sütunları seçme
selected_data = df.loc[2:4, ['Öğrenci', 'Matematik']]
print("Selected Data with loc:\\n", selected_data)
# Çıktı:
# Öğrenci Matematik
# 2 Mehmet 70
# 3 Fatma 90
# 4 Ahmet 78
.iloc ile Dilimleme ve İndeksleme
iloc, pozisyon bazlı veri seçimi yapar ve satır/sütun indeksleri kullanılarak veri seçimini sağlar.
Örnek:
import pandas as pd
# İlk iki satırı ve ilk iki sütunu seçme
selected_data_iloc = df.iloc[:2, :2]
print("Selected Data with iloc:\\n", selected_data_iloc)
# Çıktı:
# Öğrenci Matematik
# 0 Ali 85
# 1 Ayşe 95
Slicing Time Series
Pandas, zaman serisi verilerinde dilimleme ve analiz yapmayı kolaylaştırır. Tarih ve zaman bazlı veri seçimi, zaman serisi analizinde yaygın olarak kullanılır.
Zaman Serisi Verileri ile Çalışma
Zaman serisi verileri, zaman damgaları (timestamps) kullanılarak indekslenir ve bu indeksler kullanılarak veri seçimi yapılabilir.
Örnek:
import pandas as pd
import numpy as np
# Zaman serisi verileri oluşturma
date_rng = pd.date_range(start='2023-01-01', end='2023-01-10', freq='D')
data = np.random.randint(1, 100, size=(10))
time_series_df = pd.DataFrame(data, index=date_rng, columns=['Değer'])
print("Time Series DataFrame:\\n", time_series_df)
# Çıktı:
# Değer
# 2023-01-01 12
# 2023-01-02 94
# 2023-01-03 15
# 2023-01-04 59
# 2023-01-05 35
# 2023-01-06 95
# 2023-01-07 71
# 2023-01-08 13
# 2023-01-09 80
# 2023-01-10 30
# Belirli bir tarih aralığındaki verileri seçme
selected_time_series = time_series_df['2023-01-03':'2023-01-06']
print("Selected Time Series Data:\\n", selected_time_series)
# Çıktı:
# Değer
# 2023-01-03 15
# 2023-01-04 59
# 2023-01-05 35
# 2023-01-06 95
Zaman Serisi Verilerini Yeniden Örnekleme (Resampling)
Zaman serisi verilerini yeniden örneklemek, verileri belirli bir zaman dilimine göre toplama ve yeniden düzenleme işlemidir.
Örnek:
import pandas as pd
import numpy as np
# Zaman serisi verilerini günlükten haftalığa yeniden örnekleme
weekly_time_series = time_series_df.resample('W').sum()
print("Weekly Resampled Time Series Data:\\n", weekly_time_series)
# Çıktı:
# Değer
# 2023-01-01 195
# 2023-01-08 193
.loc ve .iloc ile İleri Seviye Dilimleme ve İndeksleme
Koşullu Seçim
loc ve iloc ile belirli koşullara göre veri seçimi yapabilirsiniz.
Örnek:
import pandas as pd
# 'Matematik' notu 80'den büyük olan öğrencileri seçme
selected_data_loc = df.loc[df['Matematik'] > 80]
print("Students with Math score greater than 80:\\n", selected_data_loc)
# Çıktı:
# Öğrenci Matematik Fizik Kimya
# 0 Ali 85 90 78
# 1 Ayşe 95 85 88
# 3 Fatma 90 92 89
Birden Fazla Koşul ile Seçim
Birden fazla koşulu kullanarak veri seçimi yapabilirsiniz.
Örnek:
import pandas as pd
# 'Matematik' notu 80'den büyük ve 'Fizik' notu 85'ten küçük olan öğrencileri seçme
selected_data_multiple_conditions = df.loc[(df['Matematik'] > 80) & (df['Fizik'] < 85)]
print("Students with Math score > 80 and Physics score < 85:\\n", selected_data_multiple_conditions)
# Çıktı:
# Öğrenci Matematik Fizik Kimya
# 1 Ayşe 95 85 88
İndeksleme ve Dilimleme ile Veri Manipülasyonu
İndeksleme ve dilimleme kullanarak verileri güncelleyebilir ve manipüle edebilirsiniz.
Örnek:
import pandas as pd
# 'Matematik' notu 70'in altında olan öğrencilerin notlarını 70 yapma
df.loc[df['Matematik'] < 70, 'Matematik'] = 70
print("Updated DataFrame:\\n", df)
# Çıktı:
# Öğrenci Matematik Fizik Kimya
# 0 Ali 85 90 78
# 1 Ayşe 95 85 88
# 2 Mehmet 70 80 85
# 3 Fatma 90 92 89
# 4 Ahmet 78 75 80
DataFrame'lerde Alt Küme Seçimi ve Manipülasyonu
Belirli Sütunları Seçme
DataFrame'den belirli sütunları seçmek yaygın bir işlemdir.
Örnek:
import pandas as pd
# 'Öğrenci' ve 'Fizik' sütunlarını seçme
selected_columns = df[['Öğrenci', 'Fizik']]
print("Selected Columns:\\n", selected_columns)
# Çıktı:
# Öğrenci Fizik
# 0 Ali 90
# 1 Ayşe 85
# 2 Mehmet 80
# 3 Fatma 92
# 4 Ahmet 75
Belirli Satırları Seçme
DataFrame'den belirli satırları seçmek de veri analizi sırasında sıkça kullanılır.
Örnek:
import pandas as pd
# İlk üç satırı seçme
selected_rows = df.iloc[:3]
print("Selected Rows:\\n", selected_rows)
# Çıktı:
# Öğrenci Matematik Fizik Kimya
# 0 Ali 85 90 78
# 1 Ayşe 95 85 88
# 2 Mehmet 70 80 85
Alt Küme Seçimi ile Hesaplamalar Yapma
Alt küme seçimleri ile çeşitli hesaplamalar yapabilirsiniz.
Örnek:
import pandas as pd
# 'Matematik' notu 80'in üzerinde olan öğrencilerin 'Fizik' notlarının ortalamasını hesaplama
average_physics = df.loc[df['Matematik'] > 80, 'Fizik'].mean()
print("Average Physics Score of Students with Math > 80:", average_physics)
# Çıktı: Average Physics Score of Students with Math > 80: 88.66666666666667
Bu dersin dokuzuncu partı ile Pandas ile dilimleme ve indeksleme tekniklerini öğrendik. loc ve iloc kullanarak veri seçimi, zaman serisi verileri ile çalışma ve veri manipülasyonu işlemlerini inceledik. Bir sonraki partta, Pandas ile veri birleştirme ve yeniden şekillendirme tekniklerini inceleyeceğiz ve bu teknikleri uygulayacağız.
Python temellerini atıp, veri analizi ve bilimi için yetkinlik kazanmak istiyorsanız, 1 aylık yoğun Python kampına hemen kayıt olabilirsiniz. ~40 saat canlı ders, ~50 adet kapsamlı proje, ~15 adet quiz ve sayısız kodlama egzersizinden oluşan, Finlandiya eğitim modellerinden esinlenilerek Helsinki'de geliştirilen interaktif ve pratik odaklı eğitim programına hemen göz atın !