ysk
Temizlenmis YSK secim sonuclari verisi.
Kurulum
pip install ysk
Varsayilan kurulum yalnizca veri okuma ve tablo uretme bagimliliklarini kurar. Tarihsel ilce hizalama icin cografya bagimliligini ekleyin:
pip install "ysk[cografya]"
Harita cizimi icin harita bagimliligini ekleyin:
pip install "ysk[harita]"
Tum opsiyonel bagimliliklari birlikte kurmak icin:
pip install "ysk[cografya,harita]"
# veya
pip install "ysk[all]"
İçerik
Bu repo, src/ysk/data/secim.zarr altinda tek bir xarray/zarr veri seti olarak
duzenlenmis YSK sonuclarini icerir. Veri seti; secim tarihi, makam, yer ve
tercih koordinatlariyla okunabilir. Paket icindeki yardimci fonksiyonlar bu
veriyi analiz icin hazir pandas tablolarina donusturur.
Yer bilgisi il, ilce, belde, mahalle ve sandik seviyelerinde tutulur. Oylar
parti, aday, ittifak veya diger tercih adlariyla kolonlasir; secmen sayilari
sonuc tablolarinda yer alir. Cinsiyet kirilimi level="ilce" ve level="il"
sonuclarina eklenir.
Ana dosya:
src/ysk/data/secim.zarr
Örnek
Harita sinirlari ve cizim yardimcilari opsiyonel turkiye paketinden gelir:
import turkiye
import ysk
def set_winner(df):
oy = ysk.filter_columns(df, types=ysk.Kolon.PARTI | ysk.Kolon.BAGIMSIZ)
toplam = oy.sum(axis=1).where(lambda deger: deger > 0)
df[["birinci_parti", "birinci_parti_oy"]] = oy.agg(["idxmax", "max"], axis=1)
df["birinci_parti_oran"] = df["birinci_parti_oy"] / toplam * 100
ilce = ysk.election_results(
ysk.Secim.YEREL_2024,
ysk.Makam.BELEDIYE_BASKANI,
level="ilce",
)
set_winner(ilce)
ax = turkiye.plot(
ilce,
color="birinci_parti",
color_map=ysk.PARTI_RENKLERI,
legend=True,
backend="matplotlib",
)
ax.set_title("2024 Yerel Secimleri")
Ornek cikti:
En Kolay Kullanim
import ysk
df = ysk.election_results(
ysk.Secim.YEREL_2024,
ysk.Makam.BUYUKSEHIR_BELEDIYE_BASKANI,
level="ilce",
)
df.head()
Sonuc, analiz icin hazir bir pandas DataFrame'dir:
secmen oy_kullanan gecerli gecersiz ak_parti chp ...
il ilce
ISTANBUL ADALAR ... ... ... ... ... ...
ARNAVUTKOY ... ... ... ... ... ...
Secim ve Makam
election icin Secim, office icin Makam enumlarini kullanin.
from ysk import Makam, Secim, election_results
election_results(Secim.YEREL_2024, Makam.BUYUKSEHIR_BELEDIYE_BASKANI)
election_results(Secim.YEREL_2024, Makam.BELEDIYE_MECLISI)
election_results(Secim.GENEL_2023, Makam.CUMHURBASKANI)
election_results(Secim.GENEL_2023, Makam.MILLETVEKILI)
Birden fazla secimi ayni anda alabilirsiniz:
df = election_results(
[Secim.YEREL_2019, Secim.YEREL_2024],
Makam.BUYUKSEHIR_BELEDIYE_BASKANI,
province="ISTANBUL",
district="USKUDAR",
)
df.head()
Bu durumda kolonlar MultiIndex olur:
secim 2019-03-31 2024-03-31
alan secmen gecerli chp ... secmen gecerli chp ...
il ilce ...
Birden fazla makam da birlikte secilebilir:
df = election_results(
Secim.YEREL_2024,
[Makam.BUYUKSEHIR_BELEDIYE_BASKANI, Makam.BELEDIYE_MECLISI],
province="ISTANBUL",
level="ilce",
)
Seviyeler
level parametresi tablonun hangi kirilimda donecegini belirler:
election_results(Secim.YEREL_2024, Makam.BUYUKSEHIR_BELEDIYE_BASKANI, level="sandik")
election_results(Secim.YEREL_2024, Makam.BUYUKSEHIR_BELEDIYE_BASKANI, level="mahalle")
election_results(Secim.YEREL_2024, Makam.BUYUKSEHIR_BELEDIYE_BASKANI, level="belde")
election_results(Secim.YEREL_2024, Makam.BUYUKSEHIR_BELEDIYE_BASKANI, level="ilce")
election_results(Secim.YEREL_2024, Makam.BUYUKSEHIR_BELEDIYE_BASKANI, level="il")
sandik seviyesi yurt ici sandiklari, gumruk ve ulke satirlarini birlikte
tutar. Daha yuksek seviyeler sandik verisinden gruplanarak hesaplanir.
Il ve Ilce
ankara = election_results(
Secim.YEREL_2024,
Makam.BUYUKSEHIR_BELEDIYE_BASKANI,
province="ANKARA",
level="ilce",
)
cankaya = election_results(
Secim.YEREL_2024,
Makam.BUYUKSEHIR_BELEDIYE_BASKANI,
province="ANKARA",
district="CANKAYA",
)
Ilce adlarinda bazi tarihsel farklar normalize edilir. Ornegin ONDOKUZMAYIS ve
19 MAYIS ayni ad altinda hizalanir. SEMDINLI - DERECIK gibi kaynak adlari
temizlenerek ilce ve belde bilgisi ayrilir.
Birden fazla secimi karsilastirirken, sonradan ilce olan yerleri eski idari
sinirlara toplamak icin align_historical_divisions=True argumanini
kullanabilirsiniz. Bu secenek yalnizca level="ilce" sonuclarinda etkilidir:
turkiye gerektirir; gerekirse pip install "ysk[cografya]" ile kurun.
df = election_results(
[Secim.YEREL_2014, Secim.YEREL_2024],
Makam.BELEDIYE_BASKANI,
province="HAKKARI",
level="ilce",
align_historical_divisions=True,
)
Oy, Secmen ve Cinsiyet
Donen tabloda, varsa toplam kolonlari basta gelir:
secmen, oy_kullanan, gecerli, gecersiz,
gecerli_itirazsiz, gecerli_itirazli, kadin, erkek
Bunlardan sonra parti, aday, ittifak veya tercih kolonlari gelir.
Ilce seviyesinde kadin secmen sayisi ile CHP oyu arasindaki korelasyon:
df = election_results(
Secim.YEREL_2024,
Makam.BUYUKSEHIR_BELEDIYE_BASKANI,
province="ISTANBUL",
level="ilce",
)
df[["kadin", "chp"]].corr()
Sadece belirli tercihleri almak icin:
df = election_results(
Secim.YEREL_2024,
Makam.BUYUKSEHIR_BELEDIYE_BASKANI,
province="ISTANBUL",
level="ilce",
choices=["chp", "ak_parti", "mhp"],
)
Sandik seviyesinde oy ve secmen bilgilerini birlikte kullanmak:
df = election_results(
Secim.YEREL_2024,
Makam.BUYUKSEHIR_BELEDIYE_BASKANI,
province="ISTANBUL",
district="USKUDAR",
)
df[["secmen", "chp", "ak_parti"]].head()
kadin ve erkek ilce seviyesinde tutulan demografik kolonlardir; sandik
seviyesinde tekrarlanmazlar. Bu kolonlar level="ilce" ve level="il"
sonuclarina ayri demografi verisinden eklenir.
Kolon gruplarini filtrelemek icin:
from ysk import Kolon, filter_columns
partiler = filter_columns(df, types=Kolon.PARTI)
toplam_ve_bagimsiz = filter_columns(df, types=Kolon.TOPLAM | Kolon.BAGIMSIZ)
Ham Xarray Verisi
Hazir zarr veri setini dogrudan xarray ile acmak icin:
from ysk import load_dataset
ds = load_dataset()
ds
Alternatif:
import xarray as xr
ds = xr.open_zarr("src/ysk/data/secim.zarr")
Ornek secim:
from ysk import Makam, Secim
bbb_2024 = ds.sel(secim=Secim.YEREL_2024).sel(makam=Makam.BUYUKSEHIR_BELEDIYE_BASKANI)
Eksenleri ve degiskenleri gormek icin:
ds.dims
ds.coords
list(ds.data_vars)
Tum zarr'i tek seferde DataFrame'e cevirmek bellek tasmasina yol acabilir:
# Bunu genelde yapmayin:
# ds.oy.to_dataframe()
Once secim, makam, il veya ilce ile daraltmak ya da election_results()
yardimcisini kullanmak daha guvenlidir.
Veri Formati
Ana format zarr'dir. Zarr, xarray ile uyumlu, parca parca okunabilen N-boyutlu veri saklama formatidir. Bu repo icin dogal model secim, makam, yer ve tercih koordinatlari olan etiketli bir veri setidir.
Parquet tablo/SQL isleri icin daha uygundur. Bu repoda zarr kanonik veri formati
olarak tutulur; analiz tablolarini election_results() uretir.
Metadata
Release files for ysk 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ysk-0.1.3.tar.gz | 123.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ysk-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 248.0 MB
Release files / ysk-0.1.3.tar.gz
| Download URL | ysk-0.1.3.tar.gz |
|---|---|
| Size | 123.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
79fced7b9bc9b1d3a7ffdde4ee362ea16d99002bcbd4958b47c1775437c044a6
|
|
BLAKE2b-256 checksum How to use checksums |
44fab6bafdc4611f6048a198dbbccd34de8a473cdee75f656ddd20f06ca361d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 6, 2026.
Transparency logRelease files / ysk-0.1.3-py3-none-any.whl
| Download URL | ysk-0.1.3-py3-none-any.whl |
|---|---|
| Size | 124.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9792ab07b2fb9facd23a0b189d873740646a2c1ad02544a3d10870857eb70118
|
|
BLAKE2b-256 checksum How to use checksums |
54dc2076cdb0214006fdb574ebcd75476b19897a856f67d80091fb007a446633
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 6, 2026.
Transparency log