Python’da veri analizi yaparken, Pandas kütüphanesinin varsayılan ayarlarını özelleştirmek, veri görünürlüğünü ve okunabilirliğini artırmak için önemlidir. Bu blog yazısında, Pandas için kendi set_pandas_options
fonksiyonumuzu nasıl oluşturacağımızı ve kullanacağımızı adım adım inceleyeceğiz.
1. Gerekli Kütüphanelerin Yüklenmesi
Öncelikle, kullanacağımız kütüphaneleri içe aktararak başlayalım:
import pandas as pd
2. set_pandas_options Fonksiyonunun Oluşturulması
Aşağıdaki fonksiyonu oluşturacağız. Bu fonksiyon, Pandas kütüphanesi için çeşitli ayarları özelleştirmenize olanak tanır:
def set_pandas_options(
max_columns=100,
max_rows=50,
min_rows=5,
width=1000,
float_format='%.2f', # String olarak tanımlanıyor
memory_usage='deep',
expand_frame_repr=False,
max_colwidth=50,
colheader_justify='center',
unicode_east_asian=True,
chop_threshold=1e-4,
chained_assignment='warn', # 'none', 'warn' veya 'raise'
max_info_columns=100,
max_info_rows=100
):
# Pandas ayarlarını uygulama
pd.set_option('display.max_columns', max_columns)
pd.set_option('display.max_rows', max_rows)
pd.set_option('display.min_rows', min_rows)
pd.set_option('display.width', width)
pd.set_option('display.float_format', lambda x: float_format % x) # Burada callable yapıyoruz
pd.set_option('display.memory_usage', memory_usage)
pd.set_option('expand_frame_repr', expand_frame_repr)
pd.set_option('display.max_colwidth', max_colwidth)
pd.set_option('display.colheader_justify', colheader_justify)
pd.set_option('display.unicode.east_asian', unicode_east_asian)
pd.set_option('display.chop_threshold', chop_threshold)
pd.set_option('chained_assignment', chained_assignment)
pd.set_option('display.max_info_columns', max_info_columns)
pd.set_option('display.max_info_rows', max_info_rows)
# Uygulanan ayarları yazdırma
print(f"""Pandas ayarları güncellendi:
Max Columns: {pd.get_option('display.max_columns')}
Max Rows: {pd.get_option('display.max_rows')}
Min Rows: {pd.get_option('display.min_rows')}
Width: {pd.get_option('display.width')}
Float Format: {pd.get_option('display.float_format')}
Memory Usage: {pd.get_option('display.memory_usage')}
Expand Frame Representations: {pd.get_option('expand_frame_repr')}
Max Colwidth: {pd.get_option('display.max_colwidth')}
Column Header Justify: {pd.get_option('display.colheader_justify')}
Unicode East Asian: {pd.get_option('display.unicode.east_asian')}
Chop Threshold: {pd.get_option('display.chop_threshold')}
Chained Assignment: {pd.get_option('chained_assignment')}
Max Info Columns: {pd.get_option('display.max_info_columns')}
Max Info Rows: {pd.get_option('display.max_info_rows')}""")
Bu fonksiyonun içinde, Pandas kütüphanesinin ayarlarını yapıyoruz. Örneğin, max_columns
, max_rows
gibi parametrelerle gösterilecek maksimum sütun ve satır sayısını belirleyebiliriz.
3. Fonksiyonun Uygulanması
Ayarların uygulanması ve mevcut ayarların yazdırılması için kodun son kısmını ekleyelim:
if __name__ == "__main__":
set_pandas_options()
Bu kod, fonksiyonu çalıştırdığınızda belirlediğiniz ayarların hemen uygulanmasını sağlar.
4. Detaylı Açıklama
Her bir parametreyi açıklamak için fonksiyonun başındaki docstring’i kullanıyoruz. Örneğin:
"""Pandas için varsayılan ayarları yapılandırır.
Parametreler:
max_columns (int):
DataFrame'de gösterilecek maksimum sütun sayısını belirler.
Yüksek bir değer, çok sayıda sütunun görünmesini sağlar.
max_rows (int):
DataFrame'de gösterilecek maksimum satır sayısını belirler.
Çok büyük veri setleri ile çalışırken, sadece belirli bir sayıda satır gösterilir.
min_rows (int):
Her durumda en az bu kadar satır gösterileceğini belirtir.
Veriler az olduğunda bile belirli bir görünüm sunar.
width (int):
DataFrame'in genel genişliğini (karakter cinsinden) ayarlar.
Geniş verilerin düzgün görünmesi için önemlidir.
float_format (str):
Float değerlerin nasıl gösterileceğini belirler.
Örneğin, '{:.2f}' kullanımı, sayıları iki ondalık basamakla gösterir.
memory_usage (str):
Bellek kullanımını gösterme biçimini belirler.
'deep' seçeneği, bellek kullanımının daha detaylı bir şekilde analiz edilmesini sağlar.
expand_frame_repr (bool):
DataFrame'in genişletilmesini engelleyip engellemeyeceğini ayarlar.
False olduğunda, veri genişse kesilecektir.
max_colwidth (int):
Sütunların maksimum genişliğini belirler.
Uzun metinlerin daha fazla alan kaplamasını engeller.
colheader_justify (str):
Sütun başlıklarının hizalanmasını belirler.
'left', 'center' veya 'right' seçenekleri ile başlıkların görünümünü ayarlamak mümkündür.
unicode_east_asian (bool):
Doğu Asya karakterlerinin doğru görüntülenip görüntülenmeyeceğini belirler.
True olduğunda bu karakterler desteklenir.
chop_threshold (float):
Küçük sayıları sıfıra yakın olarak gösterir.
Bu eşikten daha küçük olan sayılar görünmez hale gelir.
chained_assignment (str):
Chained assignment durumlarını nasıl yöneteceğini belirler.
'none', 'warn' veya 'raise' değerleri ile kullanıcıya uyarı verilebilir ya da hata fırlatılabilir.
column_space (int):
Sütunlar arasındaki boşluğu ayarlar.
Boşlukların fazla olması, verilerin okunabilirliğini artırır.
max_info_columns (int):
Info çıktısında gösterilecek maksimum sütun sayısını belirler.
Bu sayı aşıldığında, bilgi kesilir.
max_info_rows (int):
Info çıktısında gösterilecek maksimum satır sayısını belirler.
Bu sayı aşıldığında, bilgi çıktısı sınırlı kalır.
min_columns (int):
DataFrame'de gösterilecek minimum sütun sayısını belirler.
Bu sayının altındaki DataFrame'ler, en az bu kadar sütun gösterecektir.
"""
5. Kullanım Örneği
Fonksiyonun kullanımını göstermek için örnek bir DataFrame oluşturalım ve ayarları uygulayalım:
import datetime as dt
import pandas as pd
import numpy as np
import sys
import os
# Ana proje klasörünü Python yoluna ekle
# Mevcut dosyanın dizinini al
current_dir = os.path.dirname("proje klasor adı")
# Proje klasörünün tam yolunu oluştur
project_path = os.path.join(current_dir, "..")
# Yolun Python yoluna eklenmesi
sys.path.append(project_path)
from pd_setoption import set_pandas_options
set_pandas_options()
help(set_pandas_options)
6. Sonuç
Bu fonksiyonu oluşturduktan sonra, veri analizi sırasında Pandas ayarlarını özelleştirmek çok daha kolay hale geliyor. Ana klasörünüze yerleştireceğiniz bir .py dosyası ile her yerde tek tek yazmaya gerek kalmaksızın, source olarak çağırıp ayarlarınızı parametrik olarak değiştirebilirsiniz. Bu sayede ihtiyaçlarınıza göre özelleştirilmiş bir görünüm elde edebilirsiniz.