Power BI'da Python ile Görsel Çizmek ve Veri Dönüştürmek
Power BI'da Python hem veri almak, hem Power Query'de dönüştürmek, hem de rapor sayfasına grafik çizmek için kullanılır. Üç yolun kurulumunu, sınırlarını ve lisans şartlarını görmek hangisine ne zaman başvuracağınızı netleştirir.
Bir bakışta
- Python Power BI'da üç iş için kullanılır. Veri almak, Power Query'de tabloyu dönüştürmek ve rapor sayfasına grafik çizmek ayrı ayrı yapılandırılır.
- Veri iki yönde de pandas veri çerçevesi olarak taşınır. Dönüşümde ve görselde alanlar dataset adlı çerçeve olarak betiğe gelir.
- Python görseli sabit bir görüntüdür. Diğer görsellerin vurgulamasına yanıt verir ama diğerlerini filtrelemez.
- Zamanlanmış yenileme ek şart ister. Python içeren sorgularda kişisel ağ geçidi ve Public gizlilik düzeyi gerekir.
- Web'de yayımla Python görsellerini desteklemez. Herkese açık yayın planlıyorsanız grafiği başka bir yolla üretmeniz gerekir.
Power BI'da Python üç ayrı noktada çalışır
Python'u Power BI'a bağlamanın üç yolu vardır ve her biri farklı bir iş yapar. Birincisi veri almaktır: Get data altında Python betiği seçerek bir betiğin ürettiği tabloyu modele yüklersiniz. İkincisi dönüştürmedir: Power Query Editor'daki Run Python script adımı, mevcut bir tabloyu Python ile temizler, tamamlar ya da zenginleştirir. Üçüncüsü görselleştirmedir: Python visual, seçtiğiniz alanları bir pandas tablosu olarak betiğe verir ve betiğin çizdiği grafiği rapor sayfasına koyar.
Üçünün ortak noktası pandas veri çerçevesidir. Power BI'a Python'dan veri yalnızca bir pandas DataFrame olarak girer, çıkar. Betiğin ürettiği başka bir nesne türü modele alınmaz.
Karar basit: tabloyu hazırlıyorsanız Power Query adımı, hazır grafik çizmek istiyorsanız Python visual, hiç dışarıdan veri çekmek istiyorsanız veri alma betiği. Python ile Power BI arasındaki genel araç seçimi ayrı bir sorudur; burada konu, ikisini bir arada kullanmaktır.
Kurulum ve ilk hazırlık
Önce Python'u yerel makineye kurun. Microsoft, resmî python.org dağıtımının kullanılmasını öneriyor. Power BI betikleri, ayarlarda gösterdiğiniz klasördeki python.exe dosyasını doğrudan çalıştırır; Conda gibi ek ortam hazırlığı isteyen dağıtımlar bu yüzden hata verebilir. Alternatif olarak Power BI Desktop'ı kendi Python ortamınızın komut isteminden başlatabilirsiniz.
İki paket gerekir. Pandas, verinin Python ile Power BI arasında taşınmasını sağlar. Matplotlib, görsel için grafik çizer. Kurulumu pip ile yapın:
pip install pandas pip install matplotlib
Sonra Power BI Desktop'ta File, Options and settings, Options altında Python scripting sayfasına gidin. Algılanan Python ana dizinini doğrulayın; birden fazla kurulum varsa kullanacağınızı seçin.
Python kurulu değilse ya da algılanamazsa Power BI uyarı verir. Ofis bilgisayarlarında yönetici izni olmadan kurulum yapılamadığı için bu adım çoğu zaman BT ekibiyle birlikte yürür.
Her adım bir öncekinin üstüne kurulur
Hazırlık sırası
- Python kuruluResmî dağıtımı yerel makineye kurun.
- Paketler yüklüpip ile pandas ve matplotlib eklenir.
- Ana dizin seçiliOptions altında Python scripting yolunu doğrulayın.
- Betik çalışırKodu önce kendi ortamınızda, sonra Power BI'da deneyin.
Python görseli adım adım
Raporda Visualizations bölmesinden Python visual simgesini seçin. İlk kullanımda Enable script visuals iletişim kutusu çıkar; Enable ile onaylayın. Tuvale bir yer tutucu eklenir ve sayfanın altında Python script editor açılır.
Görselin kullanacağı alanları Values kutusuna sürükleyin. Editör, seçtiğiniz alanlardan dataset adında bir veri çerçevesi üretir. Kodunuz yalnızca bu kutuya eklediğiniz alanları görür. Varsayılan özetleme "özetleme" yoktur ve tablo görselindeki gibi aynı satırlar bir kez görünür. Tüm satırların, tekrarlar dahil, gelmesini istiyorsanız veriye bir dizin alanı ekleyin.
Sonra betiği yazın. Örnek bir dağılım grafiği:
import matplotlib.pyplot as plt dataset.plot(kind='scatter', x='Reklam', y='Satis', color='red') plt.show()
Çalıştır simgesine bastığınızda grafik görsele çizilir. Alanlara adlarıyla ulaşırsınız, örneğin dataset["Satis"]. Veri yenilendiğinde, filtre uygulandığında ya da vurgulandığında görsel yeniden çizilir. Hata olursa grafik yerine hata iletisi çıkar; ayrıntı için See details bağlantısını kullanın.
Önemli bir kural: yalnızca Python'un varsayılan görüntü aygıtına çizilen grafikler tuvalde doğru görünür. Başka bir aygıtı açıkça seçmeyin.
Power Query'de Python ile veri dönüştürme
Veriyi modele almadan önce temizlemek ya da tamamlamak için Power Query Editor'daki Transform sekmesinden Run Python script'i seçin. Tablo, betikte dataset adlı veri çerçevesi olarak gelir. Betikte yaptığınız değişiklik çıktı tablosuna yansır.
Belge örneği, eksik değerleri doldurmaktır. Aynı fikri şöyle yazabilirsiniz:
import pandas as pd dataset["tamamlanan"] = dataset["Deger"].bfill()
Adım bitince Power Query veri gizliliği uyarısı verir. Python betikli sorguların Power BI Service'te çalışabilmesi için ilgili veri kaynaklarının gizlilik düzeyi Public olmalıdır. Bunu File, Options and settings, Data source settings altında kaynağın izinlerini düzenleyerek ayarlarsınız. Kurumsal veride gizlilik düzeyini Public yapmanın riskini veri sahibiyle konuşmadan yapmayın.
Zamanlanmış yenileme için ayrıca bir kişisel ağ geçidi gerekir; kişisel ağ geçidi, dosyanın ve Python kurulumunun bulunduğu makineye kurulur. Yani Python içeren bir veri yenileme, makine kapalıyken çalışmaz. Bu yüzden çok kullanıcılı bir kurumsal raporda Python dönüşümünü Power BI'a değil, veri kaynağı tarafına almak çoğu zaman daha sağlamdır.
Sınırlar ve lisans
Python görselinin sınırlarını baştan bilin:
- Grafik için işlenen satır sayısının ve veri boyutunun bir üst sınırı vardır; aşıldığında yalnızca ilk satırlar kullanılır ve görselde mesaj çıkar
- Çok uzun süren hesaplama zaman aşımına uğrar ve hata verir
- Görsel etkileşimli değildir: diğer görsellerin vurgulamasına yanıt verir ama bir noktaya tıklayarak diğer görselleri filtreleyemezsiniz
- Giriş sütunları yeniden adlandırılamaz, betik özgün adları görür
- İlişkisi tanımlı olmayan tablolardan alan seçerseniz hata çıkar
Veri alma betiğinde de kurallar vardır: yalnızca pandas veri çerçeveleri alınır, kullanıcıdan girdi bekleyen etkileşimli çağrılar betiği durdurur, çalışma dizini tam yol olarak yazılmalıdır, çok uzun süren betik zaman aşımına uğrar.
Lisans tarafında Python görselleri Power BI Service'te gösterilebilmek için Pro ya da Premium Per User lisansı veya uygun çalışma alanı gerektirir. Ücretsiz lisanslı kullanıcılar yalnızca kendileriyle paylaşılan Premium çalışma alanlarındaki raporları görebilir. Üstelik Web'de yayımla özelliği R ve Python görsellerini desteklemez; herkese açık yayın planlıyorsanız grafiği başka bir yolla üretin.
Güvenlik ve sık hatalar
Python betikleri, güvenlik ya da gizlilik riski taşıyabilen kod içerir. Bir raporu ilk açtığınızda Power BI güvenlik uyarısı gösterir; Python görsellerini yalnızca yazarına ve kaynağına güveniyorsanız ya da betiği okuyup anladıysanız etkinleştirin. Başkasından aldığınız bir .pbix dosyasındaki betiği satır satır okumadan çalıştırmayın.
Sık karşılaşılan hatalar:
- Betiği Power BI'dan önce kendi ortamında denemeden doğrudan yapıştırmak
- Conda ortamında python.exe'yi göstererek bağımlılık hatası almak
- Values kutusuna alan eklemeyi unutup boş bir veri çerçevesiyle çalışmak
- Bir grafiği başka bir görüntü aygıtına çizmek ve tuvalde boş görsel görmek
- Görseli yayımlayıp ücretsiz lisanslı okurların göremediğini sonradan fark etmek
- Dönüşümü Power Query'de Python ile yapıp zamanlanmış yenilemeyi planlamamak
Bir de tasarım sorusu var: aynı grafiği Power BI'ın yerleşik görselleri çizebiliyorsa Python'a gerek yoktur. Python, istatistiksel grafikler, özel dağılımlar ve Power BI'da bulunmayan çizim türleri için anlamlıdır.
Bu beceriyi Mindset programlarında nerede çalışırsınız
Uygulamalı Power BI programında veri güdümlü iş zekası geliştirme başlığı Power BI içinde ileri entegrasyonlara yer açar; Python ile programlama eğitimi ise veri tipleri, veri yapıları ve modül kullanımıyla pandas ve matplotlib'a gereken temeli hazırlar. İki eğitimin birlikte düşünülmesi, Power BI'ı Python ile genişletmek isteyen veri analistleri için doğal bir yoldur.
İlgili Mindset programı
Uygulamalı Power BI ile Veri Analitiği ve Görselleştirme Sertifika Programı
Sık sorulan sorular
Python görseli için Pro lisansı şart mı?
Python görselini Power BI Desktop'ta geliştirmek tüm kullanıcılar için desteklenir. Power BI Service'te rapor oluşturmak ve görseli çizmek, yenilemek ve filtrelemek için Pro ya da Premium Per User gerekir. Ücretsiz lisanslı kullanıcılar yalnızca kendileriyle paylaşılan Premium çalışma alanlarındaki raporları görüntüleyebilir. Lisans modeli sık değiştiği için güncel tabloyu Microsoft belgesinde doğrulayın.
Python görselindeki grafik tıklanınca diğer görselleri filtreler mi?
Hayır. Python görseli yalnızca veri güncellemesi, filtreleme ve vurgulama olduğunda yeniden çizilen sabit bir görüntüdür. Diğer görsellerdeki vurgulamaya yanıt verir, ancak Python görselinden bir öğe seçerek diğer görselleri çapraz filtreleyemezsiniz. Etkileşim gerekiyorsa o kısmı yerleşik görselle kurun, Python'u yalnızca özel çizim için kullanın.
Betik hata verirse nereye bakmalıyım?
Python görselinde hata olursa grafik çizilmez, tuvalde bir iletisi görünür ve See details bağlantısı ayrıntıyı açar. Veri alma betiğinde ise önce betiği Power BI dışında kendi Python ortamınızda çalıştırın. Yol, paket kurulumu ve yönetici izni sorunlarının çoğu orada görülür. Conda kullanıyorsanız Power BI'ı o ortamın komut isteminden başlatmayı deneyin.
Python mı, DAX ve Power Query mi kullanmalıyım?
Hesap Power BI içinde yapılabiliyorsa DAX ve Power Query daha sade ve bakımı kolaydır; yenileme de ek ortam gerektirmez. Python, istatistiksel işlem, makine öğrenmesi ya da yerleşik görsellerde olmayan grafikler gerektiğinde mantıklıdır. Python ile dönüşüm yapıyorsanız zamanlanmış yenilemenin kişisel ağ geçidi ve gizlilik düzeyi şartlarını baştan planlayın.