ÖSYM excel dosyasında python işlem

Merhaba arkadaşlar

https://www.osym.gov.tr/TR,23958/2022-yks-ek-yerlestirme-kilavuz-ve-tablolar.html

Linkini verdiğim sitede tablo4 excel dosyasını düzenlemek istiyorum. Çok karmaşık. Örneğin üniversite isimleri sütünlar içerisinde verilmiş üniversite isimlerini yan sütunda bütün bölümlerin karşılığı olacak şekilde olmasını istiyorum. 3 satir hücre 1 sütun ismi şeklinde yapılmış bunun tek hücrede olması gibi şeyler nasıl yapılabilir

İstediğin şey yapılabilir ama şu halinden daha karışık olacağını düşünüyorum.

Oradaki bölüm kodlarının ilk 4 ü üniversiteye ait örneğin veya python kullanarak ön sütuna alınabilir. Bir de bu şekilde daha iyi süzebilirsin.

Evet o da bir seçenek ama universite isimlerini görmek istiyorum sadece 4kodu görmek işime yaramaz. Ama nasıl olacak problem bu? 4koda veya üniversite ismi altındaki bölüm isimlerine göre yan sütuna atabilmeli.

Ben senin için yaptım. Umarım işini görür. İstediğin gibi düzenlersin.

https://sonsuzus.github.io/dosya/tablo7.xlsx

Çok teşekürler en kısa zamanda bakacam.

Ellerine sağlık. Github sayfan harika. Hemen inclemeye başladım. Excel problemini nasıl yaptığını Github sayfanda bulamadım.

1 Beğeni

Siteye koymadım henüz. Buradan paylaşayım kodu istersen. Öncelikle tablo4.xlsx dosyasının başına iki tane boş sütun ekliyoruz. (ayrıca openpyxl xls dosyalarla çalışmadığı için farklı kaydederek xlsx haline getirmemiz gerekiyor)

from openpyxl import Workbook,load_workbook

wb = load_workbook("site-indirme/tablo4.xlsx")
ws = wb.active

for satir in range(4,ws.max_row+1):
    if ws.cell(satir,3).value==None:
        if "ÜNİVER" in ws.cell(satir,4).value:
            ws.cell(row=satir,column=1,value=ws.cell(satir,4).value)
        else:
            ws.cell(row=satir,column=2,value=ws.cell(satir,4).value)

for satir in range(5,ws.max_row+1):
    if ws.cell(satir,1).value==None:
        ws.cell(satir,1,value=ws.cell(satir-1,1).value)
    if ws.cell(satir,2).value==None:
        ws.cell(satir,2,value=ws.cell(satir-1,2).value)
    


wb.save("site-indirme/tablo7.xlsx")
wb.close()

Teşekkürler. Github ta olacaksa kısa da olsa openpxyl modülü bilgisi harika olur ben de github sayfanı incelemeye devam ediyordum. Karmaşık Excel verilerinin düzenlenmesi, numpy ve pandas ile ilgili paylaşımların olursa veya olmasını da merakla bekliyor olacağım.

merhaba tekrardan. Kodları hem inceliyor hem de çalıştırırken "TypeError: argument of type ‘NoneType’ is not iterable " hatası veriyor.

Ben de ilk başta boş satırlar için “” kullanmıştım ama sonra None değerini döndürdüğü için böyle yaptım. Sen None yazan kısımları “” veya ‘’ gibi deneyebilirsin. Veya kontrol et önce boş satır value değerini oradan gelen değeri kullanabilirsin.

Edit: Bir de ilk iki sütunu kendim ekledim o yüzden de olabilir. Tablo4 e önce iki boş sütun ekle başına.

Edit 2: Dosya uzantısını da değiştirmek gerekiyor.

dosya uzantısını değiştirmiştim paketi araştırırken. Bingo 2 sütun ekleme ile oldu:) içimden diyordum neden 3. sütun. ama bunu if ws.cell(satir,3).value==None: anlamadım. aslında bu sütun da değerler var None kullanımı anlayamadım. Teşekkürler. Python’da yeniyim de vakit buldukça araştırmalar yapıyorum

galiba anladım. Üniversite veya Fakülte geçen hücrelerin karşılığında satır boyunca değeri olmadığı için none dönüyor diyebilir miyiz?!

1 Beğeni

Aslında burada Excel formüllerini kullanarak yapmak, Python ile excel manipüle etmekten daha kolay.

=EĞER(EHATALIYSA((BUL("Üniversitesi";C4)));A4;C4)

Burada ilk sütunun başına boş bir sütun açıyoruz. İlk üniversite adının olduğu satırı kopyalayıp, boş sütunda aynı satıra yapıştırıyoruz. Yapıştırdığımız satırın altına verdiğim kodu yapıştırıyoruz. Sonrasında bu kodu aşağıya çekip (veya sağ alt köşesine çift tıklayıp) tüm boş satırlara aynı kodu uygulamış oluyoruz. Ve isimler hazır. o sütuna filtre uygulayıp üniversite adını arıyoruz.

Küçük bi sapma var ama onu da göz ardı edebiliriz. Sonuçta işimizi görüyor :slight_smile:

Teşekkürler. Exceli seviyorum ama burada python ile yapılması istemiştim.

1 Beğeni