Python in Excel

Excel içinde Python ile veri analizi yapın.

Python in Excel; pandas, NumPy, matplotlib ve benzeri kütüphanelerle Excel verisini analiz etme, özetleme ve görselleştirme imkânı sunar. Bu alanı klasik makro otomasyonu değil, modern veri analizi köprüsü olarak düşünün.

11

Python Tarifi

7

Kategori

Power Query hazırlar, Python analiz eder.

Dış veriyi Power Query ile şekillendirip, Excel içindeki Python ile daha derin analizler yapabilirsiniz.

Güncel not: Python in Excel hesaplamaları Microsoft Cloud üzerinde çalışır ve Anaconda tarafından sağlanan güvenli Python dağıtımıyla çekirdek kütüphaneler sunar. Microsoft, pandas, Matplotlib, NumPy, seaborn ve statsmodels gibi kütüphanelerin varsayılan olarak içe aktarıldığını belirtir. Python kullanmaya başlamak için Formüller sekmesinden Python Ekle seçeneği kullanılır.

Python mı Excel Formülü mü?

1. Excel formülleri hücre bazlı hesaplamalar, rapor şablonları ve kullanıcıların kolayca takip edeceği işlemler için uygundur.

2. Python; veri keşfi, istatistik, aykırı değer, korelasyon, büyük ölçekli analiz ve görselleştirme tarafında daha güçlüdür.

Rapor hücresi hesaplanacaksa formül; veri analiz edilecekse Python daha uygun olabilir.

Python mı Power Query mi?

1. Power Query veri alma, temizleme, dönüştürme ve tekrarlanabilir ETL adımları için güçlüdür.

2. Python veri analizi, istatistiksel modelleme, örüntü bulma ve gelişmiş görselleştirme için uygundur.

Veriyi hazırlamak için Power Query, veriyi analiz etmek için Python iyi bir ikilidir.

Python mı VBA mı?

1. VBA Excel arayüzünü, dosyaları, butonları ve kullanıcı etkileşimini otomatikleştirmede güçlüdür.

2. Python in Excel, Excel içinde veri analizi ve görselleştirme yapmak için tasarlanmıştır; klasik makro otomasyonu yerine geçmez.

Excel’i otomatik kontrol etmek için VBA; veriyi analiz etmek için Python kullanın.

11 Python tarifi gösteriliyor.

Başlangıç Başlangıç

Tabloyu pandas DataFrame olarak okuma

Excel tablosunu Python tarafında analiz edilebilir DataFrame yapısına alır.

Ne zaman kullanılır?

Excel’deki düzenli bir tabloyu Python ile analiz etmeye başlamak istediğinizde kullanılır.

Python kodu

df = xl("SatisTablosu[#All]", headers=True)
df.head()

Kod ne yapıyor?

  • xl() Excel aralığını veya tabloyu Python ortamına alır.
  • headers=True ilk satırın başlık olarak kullanılmasını sağlar.
  • df.head() ilk satırları hızlıca görmenizi sağlar.

Dikkat edilmesi gerekenler

  • Tablo adının Excel’de gerçekten SatisTablosu olduğundan emin olun.
  • Başlık satırları düzgün değilse pandas sütun adları beklenmedik oluşabilir.
  • Analizden önce veri tiplerini kontrol etmek iyi olur.
Başlangıç İstatistik

Sütunların temel istatistiklerini çıkarma

Sayısal sütunlar için adet, ortalama, standart sapma, minimum ve maksimum gibi özet istatistikler üretir.

Ne zaman kullanılır?

Veriyi tanımaya başlarken hızlı özet görmek istediğinizde kullanılır.

Python kodu

df = xl("SatisTablosu[#All]", headers=True)
df.describe()

Kod ne yapıyor?

  • describe() sayısal sütunlar için temel istatistikleri üretir.
  • Veri dağılımı, uç değerler ve genel ölçek hakkında ilk fikir verir.
  • Sonuç Excel hücresine tablo çıktısı olarak dönebilir.

Dikkat edilmesi gerekenler

  • Sayı gibi görünen metin sütunları istatistiklere dahil olmayabilir.
  • Eksik değerler hesaplamaların yorumunu etkileyebilir.
  • Önce df.dtypes ile veri tiplerini kontrol etmek faydalıdır.
Başlangıç Veri Kalitesi

Eksik değerleri sayma

Her sütunda kaç boş veya eksik değer olduğunu gösterir.

Ne zaman kullanılır?

Analizden önce veri kalitesini kontrol etmek istediğinizde kullanılır.

Python kodu

df = xl("SatisTablosu[#All]", headers=True)
df.isna().sum().sort_values(ascending=False)

Kod ne yapıyor?

  • isna() eksik değerleri True/False olarak işaretler.
  • sum() her sütundaki eksik değer sayısını hesaplar.
  • sort_values() en çok eksik olan sütunları üstte gösterir.

Dikkat edilmesi gerekenler

  • Boş görünen ama içinde boşluk karakteri olan hücreler eksik sayılmayabilir.
  • Eksik değerleri silmeden önce neden eksik olduklarını anlamak gerekir.
  • Bazı eksikler bilinçli olabilir; örneğin opsiyonel alanlar.
Orta Veri Kalitesi

Aykırı değerleri IQR yöntemiyle bulma

Sayısal bir sütundaki olağan dışı yüksek veya düşük değerleri tespit eder.

Ne zaman kullanılır?

Satış, maliyet, süre veya miktar gibi alanlarda olağan dışı kayıtları kontrol etmek istediğinizde kullanılır.

Python kodu

df = xl("SatisTablosu[#All]", headers=True)

q1 = df["Tutar"].quantile(0.25)
q3 = df["Tutar"].quantile(0.75)
iqr = q3 - q1

alt_sinir = q1 - 1.5 * iqr
ust_sinir = q3 + 1.5 * iqr

df[(df["Tutar"] < alt_sinir) | (df["Tutar"] > ust_sinir)]

Kod ne yapıyor?

  • IQR yöntemi verinin orta yüzde 50’lik kısmına göre sınır üretir.
  • Sınırların dışındaki kayıtlar aykırı değer adayı olarak listelenir.
  • Bu kayıtlar hata olmak zorunda değildir; ayrıca incelenmelidir.

Dikkat edilmesi gerekenler

  • Aykırı değer her zaman yanlış veri anlamına gelmez.
  • Kampanya, toplu sipariş veya özel durumlar doğal aykırı değer oluşturabilir.
  • Sütun adını kendi tablonuza göre değiştirmelisiniz.
Başlangıç Gruplama

Kategori bazında ortalama hesaplama

Bir kategorinin her değeri için sayısal sütunun ortalamasını hesaplar.

Ne zaman kullanılır?

Şehir, ürün, departman veya temsilci bazında ortalama görmek istediğinizde kullanılır.

Python kodu

df = xl("SatisTablosu[#All]", headers=True)

df.groupby("Şehir")["Tutar"].mean().sort_values(ascending=False)

Kod ne yapıyor?

  • groupby() veriyi kategoriye göre gruplar.
  • mean() her grup için ortalama hesaplar.
  • sort_values() sonuçları büyükten küçüğe sıralar.

Dikkat edilmesi gerekenler

  • Kategori adlarında yazım farkı varsa sonuçlar ayrı gruplara bölünür.
  • Ortalama, uç değerlerden etkilenebilir.
  • Tutar sütununun sayısal olduğundan emin olun.
Orta İstatistik

Korelasyon matrisi oluşturma

Sayısal sütunlar arasındaki ilişki yönünü ve gücünü gösteren korelasyon tablosu üretir.

Ne zaman kullanılır?

Satış, indirim, adet, maliyet gibi değişkenler arasında ilişki aramak istediğinizde kullanılır.

Python kodu

df = xl("SatisTablosu[#All]", headers=True)

numeric_df = df.select_dtypes(include="number")
numeric_df.corr()

Kod ne yapıyor?

  • select_dtypes() sadece sayısal sütunları seçer.
  • corr() sayısal sütunlar arasında korelasyon matrisi üretir.
  • 1’e yakın değerler pozitif, -1’e yakın değerler negatif ilişkiye işaret eder.

Dikkat edilmesi gerekenler

  • Korelasyon nedensellik göstermez.
  • Eksik değerler ve aykırı değerler sonucu etkileyebilir.
  • Az satırlı verilerde korelasyon yanıltıcı olabilir.
Başlangıç Görselleştirme

Satış dağılımını histogram ile görselleştirme

Satış tutarlarının hangi aralıklarda yoğunlaştığını gösterir.

Ne zaman kullanılır?

Tutarların dağılımını ve olağan dışı değerleri görsel olarak incelemek istediğinizde kullanılır.

Python kodu

import matplotlib.pyplot as plt

df = xl("SatisTablosu[#All]", headers=True)

plt.figure(figsize=(8, 4))
plt.hist(df["Tutar"].dropna(), bins=20)
plt.title("Satış Tutarı Dağılımı")
plt.xlabel("Tutar")
plt.ylabel("Frekans")
plt.show()

Kod ne yapıyor?

  • hist() değerleri aralıklara bölerek dağılım grafiği oluşturur.
  • dropna() eksik değerleri grafik dışında bırakır.
  • bins değeri aralık sayısını belirler.

Dikkat edilmesi gerekenler

  • Grafik yorumlanmadan önce para birimi ve veri ölçeği bilinmelidir.
  • Çok uç değerler dağılımı sıkıştırabilir.
  • Görsel analiz, sayısal özetlerle birlikte değerlendirilmelidir.
Başlangıç Görselleştirme

Kategori bazında çubuk grafik oluşturma

Kategori toplamlarını çubuk grafikle gösterir.

Ne zaman kullanılır?

Şehir, ürün, departman veya temsilci bazında toplam değerleri karşılaştırmak istediğinizde kullanılır.

Python kodu

import matplotlib.pyplot as plt

df = xl("SatisTablosu[#All]", headers=True)
ozet = df.groupby("Şehir")["Tutar"].sum().sort_values(ascending=False)

plt.figure(figsize=(8, 4))
ozet.plot(kind="bar")
plt.title("Şehre Göre Toplam Satış")
plt.xlabel("Şehir")
plt.ylabel("Toplam Satış")
plt.show()

Kod ne yapıyor?

  • groupby() şehir bazında gruplama yapar.
  • sum() toplam satışları hesaplar.
  • plot(kind="bar") çubuk grafik üretir.

Dikkat edilmesi gerekenler

  • Kategori sayısı çok fazlaysa grafik okunmaz hale gelebilir.
  • İlk 10 kategoriye odaklanmak daha okunabilir olabilir.
  • Şehir adlarındaki yazım farkları grafiği bölebilir.
Başlangıç Sıralama ve Filtreleme

En yüksek 10 kaydı listeleme

Belirli bir sayısal sütuna göre en yüksek kayıtları listeler.

Ne zaman kullanılır?

En yüksek satışlar, en büyük maliyetler veya en uzun süreler gibi kayıtları hızlıca görmek istediğinizde kullanılır.

Python kodu

df = xl("SatisTablosu[#All]", headers=True)

df.sort_values("Tutar", ascending=False).head(10)

Kod ne yapıyor?

  • sort_values() tabloyu belirtilen sütuna göre sıralar.
  • ascending=False büyükten küçüğe sıralama yapar.
  • head(10) ilk 10 kaydı getirir.

Dikkat edilmesi gerekenler

  • Tutar sütunu metin olarak saklanıyorsa sıralama yanlış olabilir.
  • Aynı tutara sahip kayıtlar varsa ek sıralama kriteri gerekebilir.
  • Top 10 analizi toplam resmi tek başına açıklamayabilir.
Başlangıç Veri Temizliği

Metin sütununu küçük harfe çevirip boşlukları temizleme

Kategori veya müşteri adlarındaki baş/son boşlukları temizler ve yazımı standartlaştırır.

Ne zaman kullanılır?

Aynı görünen değerlerin farklı yazım nedeniyle ayrı kategori sayıldığı durumlarda kullanılır.

Python kodu

df = xl("SatisTablosu[#All]", headers=True)

df["Müşteri_Temiz"] = df["Müşteri"].str.strip().str.lower()
df[["Müşteri", "Müşteri_Temiz"]].head()

Kod ne yapıyor?

  • str.strip() baştaki ve sondaki boşlukları temizler.
  • str.lower() metni küçük harfe çevirir.
  • Yeni sütun orijinal değeri bozmadan temiz sonucu gösterir.

Dikkat edilmesi gerekenler

  • Türkçe karakterlerde büyük/küçük harf dönüşümleri dikkat gerektirebilir.
  • Orijinal sütunu silmeden önce temiz sonucu kontrol edin.
  • Boş değerlerde metin işlemleri beklenmedik sonuç verebilir.
Orta Gruplama

Basit pivot tablo üretme

Python ile satır ve sütun kırılımlarına göre özet tablo üretir.

Ne zaman kullanılır?

Excel PivotTable mantığına benzer şekilde Python tarafında özet tablo oluşturmak istediğinizde kullanılır.

Python kodu

df = xl("SatisTablosu[#All]", headers=True)

pd.pivot_table(
    df,
    values="Tutar",
    index="Şehir",
    columns="Ürün",
    aggfunc="sum",
    fill_value=0
)

Kod ne yapıyor?

  • pd.pivot_table() pandas ile özet tablo üretir.
  • index satır alanını, columns sütun alanını belirler.
  • aggfunc="sum" değerlerin toplamını alır.

Dikkat edilmesi gerekenler

  • Kategori sayısı çok fazlaysa tablo genişleyebilir.
  • Eksik kombinasyonlar fill_value ile 0 gösterilebilir.
  • Excel PivotTable kadar etkileşimli değildir; analiz çıktısı üretir.

Otomasyon tarafını da görmek ister misiniz?

Python veri analizi için güçlüdür; tekrar eden Excel işlemlerinde Office Scripts ve VBA ayrı bir otomasyon katmanı sunar.