top of page

Pandas ile Dilimleme ve İndeksleme



Hands-on Mentor Kapsamlı Blog İçeriği
Hands-on Mentor Tutorials


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 !




bottom of page