- 99 Okunma
- 0 Yorum
- 0 Beğeni
Pandas Seri / DataFrame Seçim
Pandas, Python programlama dilinde veri analizi için kullanılan popüler bir kütüphanedir. Pandas, verileri tablo şeklinde tutan ve kolayca işlem yapılabilen iki temel veri yapısı sunar: Seri ve DataFrame.
- Seri, tek boyutlu, etiketli bir veri dizisidir. Her bir veriye bir indeks numarası veya bir etiket atanır. Seriler, sayısal, metinsel veya karmaşık veriler içerebilir. Seriler, Python listeleri, sözlükleri veya NumPy dizileri gibi diğer veri yapılarından oluşturulabilir. Seriler, pd.Series(data, index, name) şeklinde tanımlanır. Örnek:
python
import pandas as pd
seri = pd.Series([1, 2, 3, 4], index=["a", "b", "c", "d"], name="Sayılar")
print(seri)
Çıktı:
a 1
b 2
c 3
d 4
Name: Sayılar, dtype: int64
- DataFrame, iki boyutlu, etiketli bir veri tablosudur. Her bir sütun, farklı bir veri tipi içerebilen bir Seri olarak düşünülebilir. DataFrame’ler, Python listeleri, sözlükleri, NumPy dizileri veya Seriler gibi diğer veri yapılarından oluşturulabilir. DataFrame’ler, pd.DataFrame(data, index, columns) şeklinde tanımlanır. Örnek:
python
import pandas as pd
data = {"İsim": ["Ali", "Ayşe", "Mehmet", "Zeynep"],
"Yaş": [25, 32, 18, 27],
"Meslek": ["Mühendis", "Öğretmen", "Öğrenci", "Avukat"]}
df = pd.DataFrame(data, index=["a", "b", "c", "d"])
print(df)
Çıktı:
İsim Yaş Meslek
a Ali 25 Mühendis
b Ayşe 32 Öğretmen
c Mehmet 18 Öğrenci
d Zeynep 27 Avukat
Pandas, verilerin seçim işleminde esnek birçok yöntem sunar. Seçme işlemi ile veriler içinden istenilen kısımlar alınarak gösterilebilir veya yeni bir veri yapısı oluşturulabilir. Pandas’ta veri seçimi için kullanılan bazı yöntemler şunlardır:
- Köşeli parantez operatörü ([]): Bu operatör, Seri veya DataFrame’in belirli bir indeks veya etikete göre veri döndürmesini sağlar. Örnek:
python
# Seri’den veri seçmek
seri = pd.Series([1, 2, 3, 4], index=["a", "b", "c", "d"], name="Sayılar")
print(seri["a"]) # a etiketli veriyi döndürür
print(seri[0]) # 0 indeksli veriyi döndürür
print(seri[["a", "c"]]) # a ve c etiketli verileri döndürür
print(seri[[0, 2]]) # 0 ve 2 indeksli verileri döndürür
# DataFrame’den veri seçmek
data = {"İsim": ["Ali", "Ayşe", "Mehmet", "Zeynep"],
"Yaş": [25, 32, 18, 27],
"Meslek": ["Mühendis", "Öğretmen", "Öğrenci", "Avukat"]}
df = pd.DataFrame(data, index=["a", "b", "c", "d"])
print(df["İsim"]) # İsim sütununu döndürür
print(df[["İsim", "Meslek"]]) # İsim ve Meslek sütunlarını döndürür
print(df["a":"c"]) # a ile c arasındaki satırları döndürür
- loc ve iloc öznitelikleri: Bu öznitelikler, Seri veya DataFrame’in belirli bir etiket veya indeks aralığına göre veri döndürmesini sağlar. loc, etiketlere göre, iloc, indekslere göre seçim yapar. Örnek:
python
# Seri’den veri seçmek
seri = pd.Series([1, 2, 3, 4], index=["a", "b", "c", "d"], name="Sayılar")
print(seri.loc["a"]) # a etiketli veriyi döndürür
print(seri.iloc[0]) # 0 indeksli veriyi döndürür
print(seri.loc["a":"c"]) # a ile c arasındaki verileri döndürür
print(seri.iloc[0:3]) # 0 ile 3 arasındaki verileri döndürür
# DataFrame’den veri seçmek
data = {"İsim": ["Ali", "Ayşe", "Mehmet", "Zeynep"],
"Yaş": [25, 32, 18, 27],
"Meslek": ["Mühendis", "Öğretmen", "Öğrenci", "Avukat"]}
df = pd.DataFrame(data, index=["a", "b", "c", "d"])
print(df.loc["a"]) # a etiketli satırı döndürür
print(df.iloc[0]) # 0 indeksli satırı döndürür
print(df.loc["a", "İsim"]) # a etiketli satırın İsim sütunundaki veriyi döndürür
print(df.iloc[0, 0]) # 0 indeksli satırın 0 indeksli sütunundaki veriyi döndürür
print(df.loc["a":"c", "İsim":"Yaş"]) # a ile c arasındaki satırların İsim ile Yaş arasındaki sütunlarını döndürür
print(df.iloc[0:3, 0:2]) # 0 ile 3 arasındaki satırların 0 ile 2 arasındaki sütunlarını döndürür
- Koşullu seçim: Bu yöntem, Seri veya DataFrame’in belirli bir koşulu sağlayan verileri döndürmesini sağlar. Koşul, bir mantıksal operatör veya bir fonksiyon olabilir. Örnek:
python
# Seri’den veri seçmek
seri = pd.Series([1, 2, 3, 4], index=["a", "b", "c", "d"], name="Sayılar")
print(seri[seri > 2]) # 2’den büyük olan verileri döndürür
print(seri[seri % 2 == 0]) # Çift olan verileri döndürür
print(seri[lambda x: x ** 2 > 5]) # Kareleri 5’ten büyük olan verileri döndürür
# DataFrame’den veri seçmek
data = {"İsim": ["Ali", "Ayşe", "Mehmet", "Zeynep"],
"Yaş": [25, 32, 18, 27],
"Meslek": ["Mühendis", "Öğretmen", "Öğrenci", "Avukat"]}
df = pd.DataFrame(data, index=["a", "b", "c", "d"])
print(df[df["Yaş"] > 25]) # Yaşı 25’ten büyük olan satırları döndürür
print(df[df["Meslek"].str.contains("t")]) # Mesleği t harfi içeren satırları döndürür
print(df[df.apply(lambda x: x["Yaş"] / len(x["İsim"]) > 5, axis=1)]) # Yaşı ile isim uzunluğu oranı 5’ten büyük olan satırları döndürür
24. UYGULAMA
DataFrame’lerin elemanları üzerinde seçme işlemini yapmak için, şu adımları izleyebilirsiniz:
- Öncelikle, pandas kütüphanesini içe aktarın: import pandas as pd
- Sonra, seçmek istediğiniz DataFrame’yi oluşturun veya okuyun: df = pd.DataFrame(...) veya df = pd.read_csv(...)
- Ardından, seçmek istediğiniz elemanları belirleyin. Bunun için iki yöntem kullanabilirsiniz:
- Sütun isimleriyle seçmek için: df[’sütun_ismi’] veya df.sütun_ismi
- Boolean koşullarıyla seçmek için: df[df[’koşul’] == True] veya df[df[’koşul’] > 10]
- Son olarak, seçilen elemanları istediğiniz şekilde işleyin veya yazdırın.
Örnek olarak, aşağıdaki DataFrame’i okuyalım ve sadece hızı 60’dan büyük olan Pokemon’ları gösterelim.
python
# pokemon_tablo isminde bir dataframe yapımız olsun
pokemon_table = pd.read_csv(’[6](raw.githubusercontent.com/erkansirin78/datasets/master/pokemon.csv), usecols=[’name’, ’hız’])
# hızı 60’dan büyük olan Pokemon’ları bulalım
pokemon_table[df[’hız’] > 60]
Bu kodu çalıştırdığımızda, şöyle bir çıktı alırız:
name hız
0 Bulbasaur 60
1 Charmander 70
2 Squirtle 60
3 Pikachu 80
4 Onix 100
YORUMLAR
Henüz yorum yapılmamış.