Kurum bilgilerini güncelleme

Merhaba Arkadaşlar;

Yapmak İstediğim; İki Excel dosyasını karşılaştırılarak Ana_Tablodaki verileri güncellemek

Güncel_Kurum_Sayıları tablosunda olup, Ana_Tabloda yoksa olmayan kurumun Ana_tabloya eklenmesi ve Durumu başlığına Yeni Açılış (23.03.2024) olarak not eklenmesi,

Güncel_Kurum_Sayıları tablosunda olmayıp, Ana_tabloda var ise Ana_tablodan bunların silinmesi ve mesaj olarak 'silinen kurumun ilçesi ve okul adının (Örnek;‘Sarıca İlçesi-Sarıca İlkokulu Kapatılmıştır’) şeklinde bildirilmesi

import pandas as pd

dosya = pd.read_excel("Ana_Tablo.xlsx") 
df_ana= pd.DataFrame(dosya)

dosya = pd.read_excel("Güncel_Kurum_Sayıları.xlsx")
df_kurum = pd.DataFrame(dosya)  

df_kurum["KURUM_KODU"] != df_ana["KURUM_KODU"]
df_ana.dropna()

print(df_ana)


Merhaba,

Bir kaç fikir vererek gerisini sana bırakıyorum.

import pandas as pd
df_ana = pd.read_excel("Ana_Tablo.ods")
print(df_ana.head())

Çıktı:

KURUM_KODU  KURUM_KODU1   Tipi     İLÇE                 KURUM_TÜRÜ                         KURUM_ADI EĞİTİM KADEMESİ  SAYISI  DURUMU
0           4          4.0  RESMİ  SALİHLİ             Anadolu Lisesi            Salihli Anadolu Lisesi     ORTAÖĞRETİM       1     NaN
1          56         56.0  RESMİ  SALİHLİ                    İlkokul                    Hisar İlkokulu         İLKOKUL       1     NaN
2           3          3.0  RESMİ  SALİHLİ    Anadolu Meslek Programı  Mesleki ve Teknik Anadolu Lisesi     ORTAÖĞRETİM       1     NaN
3           1          1.0  RESMİ  SALİHLİ          İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1     NaN
4          11         11.0  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1     NaN
df_guncel = pd.read_excel("Güncel_Kurum_Sayıları.ods")
print(df_guncel.head())

Çıktı:

KURUM_KODU  KURUM_KODU1   Tipi     İLÇE                KURUM _TÜRÜ                         KURUM_ADI  SAYISI  DURUMU
0           4          4.0  RESMİ  SALİHLİ             Anadolu Lisesi            Salihli Anadolu Lisesi       1     NaN
1           3          3.0  RESMİ  SALİHLİ    Anadolu Meslek Programı  Mesleki ve Teknik Anadolu Lisesi       1     NaN
2           1          1.0  RESMİ  SALİHLİ          İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi       1     NaN
3          11         11.0  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi       1     NaN
4          72         71.0  RESMİ  SALİHLİ                    İlkokul                Narlıdere İlkokulu       1     NaN
df_ana["Kurum_Kod_Ad"] = df_ana["KURUM_KODU"].astype(str) + df_ana["KURUM_ADI"]
df_ana = df_ana.set_index("Kurum_Kod_Ad")

df_guncel["Kurum_Kod_Ad"] = df_guncel["KURUM_KODU"].astype(str) + df_guncel["KURUM_ADI"]
df_guncel = df_guncel.set_index("Kurum_Kod_Ad")

df_ana_indeks = df_ana.index

df_guncel_indeks = df_guncel.index

ekle = []

for indeks in df_guncel_indeks:
    if indeks not in df_ana_indeks:
        ekle.append(indeks)

print("Eklenecekler:", ekle)

sil = []

for indeks in df_ana_indeks:
    if indeks not in df_guncel_indeks:
        sil.append(indeks)

print("Silinecekler:", sil)

Ara Çıktı:

# df_ana.head():
                                   KURUM_KODU  KURUM_KODU1   Tipi     İLÇE                 KURUM_TÜRÜ                         KURUM_ADI EĞİTİM KADEMESİ  SAYISI  DURUMU
Kurum_Kod_Ad                                                                                                                                                           
4Salihli Anadolu Lisesi                     4          4.0  RESMİ  SALİHLİ             Anadolu Lisesi            Salihli Anadolu Lisesi     ORTAÖĞRETİM       1     NaN
56Hisar İlkokulu                           56         56.0  RESMİ  SALİHLİ                    İlkokul                    Hisar İlkokulu         İLKOKUL       1     NaN
3Mesleki ve Teknik Anadolu Lisesi           3          3.0  RESMİ  SALİHLİ    Anadolu Meslek Programı  Mesleki ve Teknik Anadolu Lisesi     ORTAÖĞRETİM       1     NaN
1Anadolu İmam Hatip Lisesi                  1          1.0  RESMİ  SALİHLİ          İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1     NaN
11Anadolu İmam Hatip Lisesi                11         11.0  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1     NaN

# df_guncel.head():

                                   KURUM_KODU  KURUM_KODU1   Tipi     İLÇE                KURUM _TÜRÜ                         KURUM_ADI  SAYISI  DURUMU
Kurum_Kod_Ad                                                                                                                                           
4Salihli Anadolu Lisesi                     4          4.0  RESMİ  SALİHLİ             Anadolu Lisesi            Salihli Anadolu Lisesi       1     NaN
3Mesleki ve Teknik Anadolu Lisesi           3          3.0  RESMİ  SALİHLİ    Anadolu Meslek Programı  Mesleki ve Teknik Anadolu Lisesi       1     NaN
1Anadolu İmam Hatip Lisesi                  1          1.0  RESMİ  SALİHLİ          İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi       1     NaN
11Anadolu İmam Hatip Lisesi                11         11.0  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi       1     NaN
72Narlıdere İlkokulu                       72         71.0  RESMİ  SALİHLİ                    İlkokul                Narlıdere İlkokulu       1     NaN

Çıktı:

Eklenecekler: ['72Narlıdere İlkokulu', '21Subaşı İlkokulu']
Silinecekler: ['56Hisar İlkokulu', '55Selam Verdi İlkokulu']

Satır ya da Sütun Silmek için drop() Fonksiyonunu kullanabilirsin.

Eklenecek satırları ayrı bir dataframe olarak ayarlayıp concat() Fonksiyonu yardımı ile ana frame ile birleştirebilirsin.

Ya da

.append() Fonksiyonunu kullanabilirsin.

1 Beğeni

Merhaba,
Silme, Güncelleme ve Ekleme İşlemleri ile alakalı olarak, kendimce mantıklı birşeyler yapmaya alıştım.
Dosya isimlerini düzenleyerek aşağıdaki kodu dener misin?

import pandas as pd
df_ana = pd.read_excel("Ana_Tablo.ods")
# print(df_ana.head())

df_guncel = pd.read_excel("Güncel_Kurum_Sayıları.ods")
# print(df_guncel.head())

df_ana["Kurum_Kod_Ad"] = df_ana["KURUM_KODU"].astype(str) + df_ana["KURUM_ADI"]
df_ana = df_ana.set_index("Kurum_Kod_Ad")
# print(df_ana.head())

df_guncel["Kurum_Kod_Ad"] = df_guncel["KURUM_KODU"].astype(str) + df_guncel["KURUM_ADI"]
df_guncel = df_guncel.set_index("Kurum_Kod_Ad")
# print(df_guncel.head())

df_ana_indeks = df_ana.index
# print(df_ana_indeks)

df_guncel_indeks = df_guncel.index
# print(df_guncel_indeks)

print("DF_ANA:\n", df_ana)
print("\nDF_GUNCEL:\n", df_guncel)

ekle = []

for indeks in df_guncel_indeks:
    if indeks not in df_ana_indeks:
        ekle.append(indeks)

print("\n\nEklenecekler:", ekle)

sil = []

for indeks in df_ana_indeks:
    if indeks not in df_guncel_indeks:
        sil.append(indeks)

print("Silinecekler:", sil)


def satir_sil(satir):
    df_ana.drop(satir, axis = 0, inplace = True)

for satir in sil:
    satir_sil(satir)

print("\n\nDF_ANA SİLİNMİŞ HAL:\n", df_ana)

guncellenecekler = []
baslik_df_guncel = df_guncel.columns

for satir in df_guncel_indeks:
    if satir in df_ana_indeks:
        guncellenecekler.append(satir)

print("\n\nGÜNCELLENECEK VERİ:\n", guncellenecekler)

# def guncelle():
#     for veri in guncellenecekler:
#         for baslik in baslik_df_guncel:
#             df_ana.at[veri, baslik] = df_guncel.at[veri, baslik]

def guncelle():
    for veri in guncellenecekler:
        df_ana.loc[veri] = df_guncel.loc[veri]

guncelle()

print("\n\nDF_ANA GÜNCELLENMİŞ HAL:\n", df_ana)

def ekleyin():
    for veri in ekle:
        df_ana.loc[veri] = df_guncel.loc[veri]
        df_ana.loc[veri, "DURUMU"] = "(23.03.2024)"

ekleyin()

print("\n\nDF_ANA EKLENMİŞ HAL:\n", df_ana)

Çıktı:

DF_ANA:
                                          KURUM_KODU  KURUM_KODU1   Tipi     İLÇE                 KURUM_TÜRÜ                               KURUM_ADI EĞİTİM KADEMESİ  SAYISI  DURUMU
Kurum_Kod_Ad                                                                                                                                                                       
4Salihli Anadolu Lisesi                           4          4.0  RESMİ  SALİHLİ             Anadolu Lisesi                  Salihli Anadolu Lisesi     ORTAÖĞRETİM       1     NaN
56Hisar İlkokulu                                 56         56.0  RESMİ  SALİHLİ                    İlkokul                          Hisar İlkokulu         İLKOKUL       1     NaN
3Mesleki ve Teknik Anadolu Lisesi                 3          3.0  RESMİ  SALİHLİ    Anadolu Meslek Programı        Mesleki ve Teknik Anadolu Lisesi     ORTAÖĞRETİM       1     NaN
1Anadolu İmam Hatip Lisesi                        1          1.0  RESMİ  SALİHLİ          İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1     NaN
11Anadolu İmam Hatip Lisesi                      11         11.0  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1     NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          2.0  RESMİ  OSMANLI          İmam Hatip Lisesi  Osmanlı Kız Anadolu İmam Hatip Lisesi      ORTAÖĞRETİM       1     NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          NaN  RESMİ  OSMANLI          İmam Hatip Lisesi   Osmanlı Kız Anadolu İmam Hatip Lisesi        ORTAOKUL       1     NaN
8Atatürk İlkokulu                                 8          8.0  RESMİ   SARICA                    İlkokul                        Atatürk İlkokulu         İLKOKUL       1     NaN
7Atatürk Ortaokulu                                7          7.0  RESMİ   SARICA                   Ortaokul                       Atatürk Ortaokulu        ORTAOKUL       1     NaN
9Sarıca İlkokulu                                  9          9.0  RESMİ   SARICA                    İlkokul                         Sarıca İlkokulu         İLKOKUL       1     NaN
5Atatürk İlkokulu                                 5          5.0  RESMİ  SALİHLİ                    İlkokul                        Atatürk İlkokulu         İLKOKUL       1     NaN
675. Yıl ilkokulu                                 6          6.0  RESMİ  SALİHLİ                    İlkokul                        75. Yıl ilkokulu         İLKOKUL       1     NaN
55Selam Verdi İlkokulu                           55         55.0  RESMİ  SALİHLİ                    İlkokul                    Selam Verdi İlkokulu         İLKOKUL       1     NaN

DF_GUNCEL:
                                          KURUM_KODU  KURUM_KODU1     Tipi       İLÇE                 KURUM_TÜRÜ                               KURUM_ADI  SAYISI  DURUMU
Kurum_Kod_Ad                                                                                                                                                           
4Salihli Anadolu Lisesi                           4          4.0   RESMİ1   SALİHLİ1             Anadolu Lisesi                  Salihli Anadolu Lisesi       2     NaN
3Mesleki ve Teknik Anadolu Lisesi                 3          3.0   RESMİ2   SALİHLİ2  Anadolu Meslek Programı 6        Mesleki ve Teknik Anadolu Lisesi       3     NaN
1Anadolu İmam Hatip Lisesi                        1          1.0   RESMİ3   SALİHLİ3          İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi       4     NaN
11Anadolu İmam Hatip Lisesi                      11         11.0   RESMİ4   SALİHLİ4  Anadolu İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi       5     NaN
72Narlıdere İlkokulu                             72         71.0   RESMİ5   SALİHLİ5                 İlkokul 66                      Narlıdere İlkokulu       6     NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          2.0   RESMİ6   SALİHLİ6        İmam Hatip Lisesi 4  Osmanlı Kız Anadolu İmam Hatip Lisesi        7     NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          NaN   RESMİ7   SALİHLİ7          İmam Hatip Lisesi   Osmanlı Kız Anadolu İmam Hatip Lisesi       8     NaN
8Atatürk İlkokulu                                 8          8.0   RESMİ8   SALİHLİ8                 İlkokul 56                        Atatürk İlkokulu       9     NaN
7Atatürk Ortaokulu                                7          7.0   RESMİ9   SALİHLİ9                   Ortaokul                       Atatürk Ortaokulu      10     NaN
9Sarıca İlkokulu                                  9          9.0  RESMİ10  SALİHLİ10                    İlkokul                         Sarıca İlkokulu      11     NaN
5Atatürk İlkokulu                                 5          5.0  RESMİ11  SALİHLİ11                 İlkokul 34                        Atatürk İlkokulu      12     NaN
675. Yıl ilkokulu                                 6          6.0  RESMİ12  SALİHLİ12                    İlkokul                        75. Yıl ilkokulu      13     NaN
21Subaşı İlkokulu                                21         21.0  RESMİ13  SALİHLİ13                    İlkokul                         Subaşı İlkokulu      14     NaN


Eklenecekler: ['72Narlıdere İlkokulu', '21Subaşı İlkokulu']
Silinecekler: ['56Hisar İlkokulu', '55Selam Verdi İlkokulu']


DF_ANA SİLİNMİŞ HAL:
                                          KURUM_KODU  KURUM_KODU1   Tipi     İLÇE                 KURUM_TÜRÜ                               KURUM_ADI EĞİTİM KADEMESİ  SAYISI  DURUMU
Kurum_Kod_Ad                                                                                                                                                                       
4Salihli Anadolu Lisesi                           4          4.0  RESMİ  SALİHLİ             Anadolu Lisesi                  Salihli Anadolu Lisesi     ORTAÖĞRETİM       1     NaN
3Mesleki ve Teknik Anadolu Lisesi                 3          3.0  RESMİ  SALİHLİ    Anadolu Meslek Programı        Mesleki ve Teknik Anadolu Lisesi     ORTAÖĞRETİM       1     NaN
1Anadolu İmam Hatip Lisesi                        1          1.0  RESMİ  SALİHLİ          İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1     NaN
11Anadolu İmam Hatip Lisesi                      11         11.0  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1     NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          2.0  RESMİ  OSMANLI          İmam Hatip Lisesi  Osmanlı Kız Anadolu İmam Hatip Lisesi      ORTAÖĞRETİM       1     NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          NaN  RESMİ  OSMANLI          İmam Hatip Lisesi   Osmanlı Kız Anadolu İmam Hatip Lisesi        ORTAOKUL       1     NaN
8Atatürk İlkokulu                                 8          8.0  RESMİ   SARICA                    İlkokul                        Atatürk İlkokulu         İLKOKUL       1     NaN
7Atatürk Ortaokulu                                7          7.0  RESMİ   SARICA                   Ortaokul                       Atatürk Ortaokulu        ORTAOKUL       1     NaN
9Sarıca İlkokulu                                  9          9.0  RESMİ   SARICA                    İlkokul                         Sarıca İlkokulu         İLKOKUL       1     NaN
5Atatürk İlkokulu                                 5          5.0  RESMİ  SALİHLİ                    İlkokul                        Atatürk İlkokulu         İLKOKUL       1     NaN
675. Yıl ilkokulu                                 6          6.0  RESMİ  SALİHLİ                    İlkokul                        75. Yıl ilkokulu         İLKOKUL       1     NaN


GÜNCELLENECEK VERİ:
 ['4Salihli Anadolu Lisesi', '3Mesleki ve Teknik Anadolu Lisesi', '1Anadolu İmam Hatip Lisesi', '11Anadolu İmam Hatip Lisesi', '2Osmanlı Kız Anadolu İmam Hatip Lisesi ', '2Osmanlı Kız Anadolu İmam Hatip Lisesi', '8Atatürk İlkokulu', '7Atatürk Ortaokulu', '9Sarıca İlkokulu', '5Atatürk İlkokulu', '675. Yıl ilkokulu']


DF_ANA GÜNCELLENMİŞ HAL:
                                          KURUM_KODU  KURUM_KODU1     Tipi       İLÇE                 KURUM_TÜRÜ                               KURUM_ADI EĞİTİM KADEMESİ  SAYISI  DURUMU
Kurum_Kod_Ad                                                                                                                                                                           
4Salihli Anadolu Lisesi                           4          4.0   RESMİ1   SALİHLİ1             Anadolu Lisesi                  Salihli Anadolu Lisesi             NaN       2     NaN
3Mesleki ve Teknik Anadolu Lisesi                 3          3.0   RESMİ2   SALİHLİ2  Anadolu Meslek Programı 6        Mesleki ve Teknik Anadolu Lisesi             NaN       3     NaN
1Anadolu İmam Hatip Lisesi                        1          1.0   RESMİ3   SALİHLİ3          İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi             NaN       4     NaN
11Anadolu İmam Hatip Lisesi                      11         11.0   RESMİ4   SALİHLİ4  Anadolu İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi             NaN       5     NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          2.0   RESMİ6   SALİHLİ6        İmam Hatip Lisesi 4  Osmanlı Kız Anadolu İmam Hatip Lisesi              NaN       7     NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          NaN   RESMİ7   SALİHLİ7          İmam Hatip Lisesi   Osmanlı Kız Anadolu İmam Hatip Lisesi             NaN       8     NaN
8Atatürk İlkokulu                                 8          8.0   RESMİ8   SALİHLİ8                 İlkokul 56                        Atatürk İlkokulu             NaN       9     NaN
7Atatürk Ortaokulu                                7          7.0   RESMİ9   SALİHLİ9                   Ortaokul                       Atatürk Ortaokulu             NaN      10     NaN
9Sarıca İlkokulu                                  9          9.0  RESMİ10  SALİHLİ10                    İlkokul                         Sarıca İlkokulu             NaN      11     NaN
5Atatürk İlkokulu                                 5          5.0  RESMİ11  SALİHLİ11                 İlkokul 34                        Atatürk İlkokulu             NaN      12     NaN
675. Yıl ilkokulu                                 6          6.0  RESMİ12  SALİHLİ12                    İlkokul                        75. Yıl ilkokulu             NaN      13     NaN


DF_ANA EKLENMİŞ HAL:
                                          KURUM_KODU  KURUM_KODU1     Tipi       İLÇE                 KURUM_TÜRÜ                               KURUM_ADI EĞİTİM KADEMESİ  SAYISI        DURUMU
Kurum_Kod_Ad                                                                                                                                                                                 
4Salihli Anadolu Lisesi                           4          4.0   RESMİ1   SALİHLİ1             Anadolu Lisesi                  Salihli Anadolu Lisesi             NaN       2           NaN
3Mesleki ve Teknik Anadolu Lisesi                 3          3.0   RESMİ2   SALİHLİ2  Anadolu Meslek Programı 6        Mesleki ve Teknik Anadolu Lisesi             NaN       3           NaN
1Anadolu İmam Hatip Lisesi                        1          1.0   RESMİ3   SALİHLİ3          İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi             NaN       4           NaN
11Anadolu İmam Hatip Lisesi                      11         11.0   RESMİ4   SALİHLİ4  Anadolu İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi             NaN       5           NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          2.0   RESMİ6   SALİHLİ6        İmam Hatip Lisesi 4  Osmanlı Kız Anadolu İmam Hatip Lisesi              NaN       7           NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          NaN   RESMİ7   SALİHLİ7          İmam Hatip Lisesi   Osmanlı Kız Anadolu İmam Hatip Lisesi             NaN       8           NaN
8Atatürk İlkokulu                                 8          8.0   RESMİ8   SALİHLİ8                 İlkokul 56                        Atatürk İlkokulu             NaN       9           NaN
7Atatürk Ortaokulu                                7          7.0   RESMİ9   SALİHLİ9                   Ortaokul                       Atatürk Ortaokulu             NaN      10           NaN
9Sarıca İlkokulu                                  9          9.0  RESMİ10  SALİHLİ10                    İlkokul                         Sarıca İlkokulu             NaN      11           NaN
5Atatürk İlkokulu                                 5          5.0  RESMİ11  SALİHLİ11                 İlkokul 34                        Atatürk İlkokulu             NaN      12           NaN
675. Yıl ilkokulu                                 6          6.0  RESMİ12  SALİHLİ12                    İlkokul                        75. Yıl ilkokulu             NaN      13           NaN
72Narlıdere İlkokulu                             72         71.0   RESMİ5   SALİHLİ5                 İlkokul 66                      Narlıdere İlkokulu             NaN       6  (23.03.2024)
21Subaşı İlkokulu                                21         21.0  RESMİ13  SALİHLİ13                    İlkokul                         Subaşı İlkokulu             NaN      14  (23.03.2024)
1 Beğeni

Mustafa Hocam, Teşekkür ederim, elinize emeğinize sağlık.

Hocam, Ana Tablodaki Eğitim Kademesi Başlığı siliniyor.
Ekran görüntüsünü ekledim.

df_guncel_indeks = df_guncel.index satırından sonra,
df_guncel["EĞİTİM_KADEMESİ"] = df_ana["EĞİTİM_KADEMESİ"]
satırını ekleyip dener misiniz?

Nihai kod;

import pandas as pd
df_ana = pd.read_excel("Ana_Tablo.ods")
# print(df_ana.head())

df_guncel = pd.read_excel("Güncel_Kurum_Sayıları.ods")
# print(df_guncel.head())

df_ana["Kurum_Kod_Ad"] = df_ana["KURUM_KODU"].astype(str) + df_ana["KURUM_ADI"]
df_ana = df_ana.set_index("Kurum_Kod_Ad")
# print(df_ana.head())

df_guncel["Kurum_Kod_Ad"] = df_guncel["KURUM_KODU"].astype(str) + df_guncel["KURUM_ADI"]
df_guncel = df_guncel.set_index("Kurum_Kod_Ad")
# print(df_guncel.head())

df_ana_indeks = df_ana.index
# print(df_ana_indeks)

df_guncel_indeks = df_guncel.index
# print(df_guncel_indeks)
df_guncel["EĞİTİM_KADEMESİ"] = df_ana["EĞİTİM_KADEMESİ"]

print("DF_ANA:\n", df_ana)
print("\nDF_GUNCEL:\n", df_guncel)

eklenecekler = []

for indeks in df_guncel_indeks:
    if indeks not in df_ana_indeks:
        eklenecekler.append(indeks)
print("\n\nEklenecekler:", eklenecekler)

sil = []

for indeks in df_ana_indeks:
    if indeks not in df_guncel_indeks:
        sil.append(indeks)
print("Silinecekler:", sil)

def satir_sil(satir):
    df_ana.drop(satir, axis = 0, inplace = True)

for satir in sil:
    satir_sil(satir)
# print("\n\nDF_ANA SİLİNMİŞ HAL:\n", df_ana)

guncellenecekler = []
baslik_df_guncel = df_guncel.columns

for satir in df_guncel_indeks:
    if satir in df_ana_indeks:
        guncellenecekler.append(satir)
# print("\n\nGÜNCELLENECEK VERİ:\n", guncellenecekler)

### Bu guncelleme fonksiyonu da doğru çalışıyor.
### Bu guncellen() fonksiyonu da çalışıyor.
# def guncelle():
#     for veri in guncellenecekler:
#         for baslik in baslik_df_guncel:
#             df_ana.at[veri, baslik] = df_guncel.at[veri, baslik]

def guncelle():
    for veri in guncellenecekler:
        df_ana.loc[veri] = df_guncel.loc[veri]
        
guncelle()
# print("\n\nDF_ANA GÜNCELLENMİŞ HAL:\n", df_ana)

def ekle():
    for veri in eklenecekler:
        df_ana.loc[veri] = df_guncel.loc[veri]
        df_ana.loc[veri, "DURUMU"] = "(23.03.2024)"

ekle()
print("\n\nDF_ANA EKLENMİŞ HAL:\n", df_ana)

ÇIKTI:

DF_ANA:
                                          KURUM_KODU  KURUM_KODU1   Tipi     İLÇE                 KURUM_TÜRÜ                               KURUM_ADI EĞİTİM_KADEMESİ  SAYISI  DURUMU
Kurum_Kod_Ad                                                                                                                                                                       
4Salihli Anadolu Lisesi                           4          4.0  RESMİ  SALİHLİ             Anadolu Lisesi                  Salihli Anadolu Lisesi     ORTAÖĞRETİM       1     NaN
56Hisar İlkokulu                                 56         56.0  RESMİ  SALİHLİ                    İlkokul                          Hisar İlkokulu         İLKOKUL       1     NaN
3Mesleki ve Teknik Anadolu Lisesi                 3          3.0  RESMİ  SALİHLİ    Anadolu Meslek Programı        Mesleki ve Teknik Anadolu Lisesi     ORTAÖĞRETİM       1     NaN
1Anadolu İmam Hatip Lisesi                        1          1.0  RESMİ  SALİHLİ          İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1     NaN
11Anadolu İmam Hatip Lisesi                      11         11.0  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1     NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          2.0  RESMİ  OSMANLI          İmam Hatip Lisesi  Osmanlı Kız Anadolu İmam Hatip Lisesi      ORTAÖĞRETİM       1     NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          NaN  RESMİ  OSMANLI          İmam Hatip Lisesi   Osmanlı Kız Anadolu İmam Hatip Lisesi        ORTAOKUL       1     NaN
8Atatürk İlkokulu                                 8          8.0  RESMİ   SARICA                    İlkokul                        Atatürk İlkokulu         İLKOKUL       1     NaN
7Atatürk Ortaokulu                                7          7.0  RESMİ   SARICA                   Ortaokul                       Atatürk Ortaokulu        ORTAOKUL       1     NaN
9Sarıca İlkokulu                                  9          9.0  RESMİ   SARICA                    İlkokul                         Sarıca İlkokulu         İLKOKUL       1     NaN
5Atatürk İlkokulu                                 5          5.0  RESMİ  SALİHLİ                    İlkokul                        Atatürk İlkokulu         İLKOKUL       1     NaN
675. Yıl ilkokulu                                 6          6.0  RESMİ  SALİHLİ                    İlkokul                        75. Yıl ilkokulu         İLKOKUL       1     NaN
55Selam Verdi İlkokulu                           55         55.0  RESMİ  SALİHLİ                    İlkokul                    Selam Verdi İlkokulu         İLKOKUL       1     NaN

DF_GUNCEL:
                                          KURUM_KODU  KURUM_KODU1     Tipi       İLÇE                 KURUM_TÜRÜ                               KURUM_ADI  SAYISI  DURUMU EĞİTİM_KADEMESİ
Kurum_Kod_Ad                                                                                                                                                                           
4Salihli Anadolu Lisesi                           4          4.0   RESMİ1   SALİHLİ1             Anadolu Lisesi                  Salihli Anadolu Lisesi       2     NaN     ORTAÖĞRETİM
3Mesleki ve Teknik Anadolu Lisesi                 3          3.0   RESMİ2   SALİHLİ2  Anadolu Meslek Programı 6        Mesleki ve Teknik Anadolu Lisesi       3     NaN     ORTAÖĞRETİM
1Anadolu İmam Hatip Lisesi                        1          1.0   RESMİ3   SALİHLİ3          İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi       4     NaN     ORTAÖĞRETİM
11Anadolu İmam Hatip Lisesi                      11         11.0   RESMİ4   SALİHLİ4  Anadolu İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi       5     NaN     ORTAÖĞRETİM
72Narlıdere İlkokulu                             72         71.0   RESMİ5   SALİHLİ5                 İlkokul 66                      Narlıdere İlkokulu       6     NaN             NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          2.0   RESMİ6   SALİHLİ6        İmam Hatip Lisesi 4  Osmanlı Kız Anadolu İmam Hatip Lisesi        7     NaN     ORTAÖĞRETİM
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          NaN   RESMİ7   SALİHLİ7          İmam Hatip Lisesi   Osmanlı Kız Anadolu İmam Hatip Lisesi       8     NaN        ORTAOKUL
8Atatürk İlkokulu                                 8          8.0   RESMİ8   SALİHLİ8                 İlkokul 56                        Atatürk İlkokulu       9     NaN         İLKOKUL
7Atatürk Ortaokulu                                7          7.0   RESMİ9   SALİHLİ9                   Ortaokul                       Atatürk Ortaokulu      10     NaN        ORTAOKUL
9Sarıca İlkokulu                                  9          9.0  RESMİ10  SALİHLİ10                    İlkokul                         Sarıca İlkokulu      11     NaN         İLKOKUL
5Atatürk İlkokulu                                 5          5.0  RESMİ11  SALİHLİ11                 İlkokul 34                        Atatürk İlkokulu      12     NaN         İLKOKUL
675. Yıl ilkokulu                                 6          6.0  RESMİ12  SALİHLİ12                    İlkokul                        75. Yıl ilkokulu      13     NaN         İLKOKUL
21Subaşı İlkokulu                                21         21.0  RESMİ13  SALİHLİ13                    İlkokul                         Subaşı İlkokulu      14     NaN             NaN


Eklenecekler: ['72Narlıdere İlkokulu', '21Subaşı İlkokulu']
Silinecekler: ['56Hisar İlkokulu', '55Selam Verdi İlkokulu']


DF_ANA EKLENMİŞ HAL:
                                          KURUM_KODU  KURUM_KODU1     Tipi       İLÇE                 KURUM_TÜRÜ                               KURUM_ADI EĞİTİM_KADEMESİ  SAYISI        DURUMU
Kurum_Kod_Ad                                                                                                                                                                                 
4Salihli Anadolu Lisesi                           4          4.0   RESMİ1   SALİHLİ1             Anadolu Lisesi                  Salihli Anadolu Lisesi     ORTAÖĞRETİM       2           NaN
3Mesleki ve Teknik Anadolu Lisesi                 3          3.0   RESMİ2   SALİHLİ2  Anadolu Meslek Programı 6        Mesleki ve Teknik Anadolu Lisesi     ORTAÖĞRETİM       3           NaN
1Anadolu İmam Hatip Lisesi                        1          1.0   RESMİ3   SALİHLİ3          İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       4           NaN
11Anadolu İmam Hatip Lisesi                      11         11.0   RESMİ4   SALİHLİ4  Anadolu İmam Hatip Lisesi               Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       5           NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          2.0   RESMİ6   SALİHLİ6        İmam Hatip Lisesi 4  Osmanlı Kız Anadolu İmam Hatip Lisesi      ORTAÖĞRETİM       7           NaN
2Osmanlı Kız Anadolu İmam Hatip Lisesi            2          NaN   RESMİ7   SALİHLİ7          İmam Hatip Lisesi   Osmanlı Kız Anadolu İmam Hatip Lisesi        ORTAOKUL       8           NaN
8Atatürk İlkokulu                                 8          8.0   RESMİ8   SALİHLİ8                 İlkokul 56                        Atatürk İlkokulu         İLKOKUL       9           NaN
7Atatürk Ortaokulu                                7          7.0   RESMİ9   SALİHLİ9                   Ortaokul                       Atatürk Ortaokulu        ORTAOKUL      10           NaN
9Sarıca İlkokulu                                  9          9.0  RESMİ10  SALİHLİ10                    İlkokul                         Sarıca İlkokulu         İLKOKUL      11           NaN
5Atatürk İlkokulu                                 5          5.0  RESMİ11  SALİHLİ11                 İlkokul 34                        Atatürk İlkokulu         İLKOKUL      12           NaN
675. Yıl ilkokulu                                 6          6.0  RESMİ12  SALİHLİ12                    İlkokul                        75. Yıl ilkokulu         İLKOKUL      13           NaN
72Narlıdere İlkokulu                             72         71.0   RESMİ5   SALİHLİ5                 İlkokul 66                      Narlıdere İlkokulu             NaN       6  (23.03.2024)
21Subaşı İlkokulu                                21         21.0  RESMİ13  SALİHLİ13                    İlkokul                         Subaşı İlkokulu             NaN      14  (23.03.2024)
1 Beğeni

Hocam, Merhaba;

Hatayı düzelttim.
Kodun son hali;

import pandas as pd
from openpyxl import workbook,load_workbook

df_ana = pd.read_excel("Ana_Tablo.xlsx")
df_guncel = pd.read_excel("Güncel_Kurum_Sayıları.xlsx")

df_ana["Kurum_Kod_Ad"] = df_ana["KURUM_KODU"].astype(str) + df_ana["KURUM_ADI"]
df_ana = df_ana.set_index("Kurum_Kod_Ad")

df_guncel["Kurum_Kod_Ad"] = df_guncel["KURUM_KODU"].astype(str) + df_guncel["KURUM_ADI"]
df_guncel = df_guncel.set_index("Kurum_Kod_Ad")

df_ana_indeks = df_ana.index
df_guncel_indeks = df_guncel.index

print("DF_ANA:\n", df_ana)
print("\nDF_GUNCEL:\n", df_guncel)

eklenecekler = []
for indeks in df_guncel_indeks:
    if indeks not in df_ana_indeks:
        eklenecekler.append(indeks)
print("\n\nEklenecekler:", eklenecekler)

sil = []
for indeks in df_ana_indeks:
    if indeks not in df_guncel_indeks:
        sil.append(indeks)
print("Silinecekler:", sil)

def satir_sil(satir):
    df_ana.drop(satir, axis = 0, inplace = True)
for satir in sil:
    satir_sil(satir)

def ekle():
    for veri in eklenecekler:
        df_ana.loc[veri] = df_guncel.loc[veri]
        df_ana.loc[veri, "DURUMU"] = "Yeni Açılış"+" "+ "(23.03.2024)"
        df_ana.loc[veri, "SAYISI"] =1
ekle()
print("\n\nDF_ANA EKLENMİŞ HAL:\n", df_ana)

df_ana=df_ana.set_index("KURUM_KODU")
df_ana=df_ana.sort_values(by=['İLÇE','KURUM_ADI'])
print(df_ana)
#------------------------------------------------------------------------------------------------------------

# Kaydet
def write_excel(filename, Sayfa, dataframe):
    with pd.ExcelWriter(filename, engine='openpyxl', mode='a') as writer: 
        workBook = writer.book

        try:
            workBook.remove(workBook[Sayfa])
        except:

            print("Worksheet does not exist")
        finally:
            dataframe.to_excel(writer, sheet_name='Ana_Tablo')
            writer._save()

filename = (r"D:\PYTHON_DATA\ÖRNEK_DOSYALAR\Ana_Tablo.xlsx")
write_excel(filename, "Ana_Tablo" ,df_ana)

wb = load_workbook(filename)
sa = len(wb.sheetnames)     # sekme adları sayısı
wb.move_sheet("Ana_Tablo", offset = -(sa-1))
wb.save(filename)

Hocam kurumlardaki değişiklik genelde iki türlü oluyor;
Birincisi kurum sıfırdan açılır, kod ve her şeyi yenidir benzeri yoktur,
İkincisi ise kurum kodu ve diğer bilgileri değişmez sadece okulun adı değişir.
Bu iki durumu ayırmak için Durumu başlığına Yeni Açılış (Açılış tarihi), Okul Adı Değişikliği (Değişiklik tarihi) açıklaması düşerek çözüyoruz.
Kodda bu iki durumu ayırmak için ne yapa biliriz

Teşekkür ederim.

Merhaba,
Gün içerisinde foruma göz attığımda;
ValueError: cannot reindex on an axis with duplicate labels hata mesajı aldığını okumuştum ancak cevap yazamadım.
Bu sorunun sebebi; Benzersiz olması gereken index bilgilerinin bazısının benzer olması kaynaklıydı. Bu konuyla alakalı aşağıdaki bağlantıyı inceleyebilirsin:

Bu hatayı almanın sebebi ise, kod içerisinde indeks olarak aşağıdaki kodların yazılması idi:

df_ana["Kurum_Kod_Ad"] = df_ana["KURUM_KODU"].astype(str) + df_ana["KURUM_ADI"]
df_ana = df_ana.set_index("Kurum_Kod_Ad")

df_guncel["Kurum_Kod_Ad"] = df_guncel["KURUM_KODU"].astype(str) + df_guncel["KURUM_ADI"]
df_guncel = df_guncel.set_index("Kurum_Kod_Ad")

Bu kodu yazarken KURUM_KODU ve KURUM_ADI değerlerinin değişmez olduğunu düşünmüştüm.
Madem KURUM_ADI değişebilir o halde Benzersiz olması gerek indeks değerini aşağıdaki şekilde güncelleyerek sorunu çözebiliriz.

df_ana["Kurum_Kod_Kod1"] = df_ana["KURUM_KODU"].astype(str) + df_ana["KURUM_KODU1"].astype(str)
df_ana = df_ana.set_index("Kurum_Kod_Kod1")

df_guncel["Kurum_Kod_Kod1"] = df_guncel["KURUM_KODU"].astype(str) + df_guncel["KURUM_KODU1"].astype(str)
df_guncel = df_guncel.set_index("Kurum_Kod_Kod1")

Yeni soruna gelisek;

Hocam kurumlardaki değişiklik genelde iki türlü oluyor;
Birincisi kurum sıfırdan açılır, kod ve her şeyi yenidir benzeri yoktur,
İkincisi ise kurum kodu ve diğer bilgileri değişmez sadece okulun adı değişir.
Bu iki durumu ayırmak için Durumu başlığına Yeni Açılış (Açılış tarihi), Okul Adı Değişikliği (Değişiklik tarihi) açıklaması düşerek çözüyoruz.

Bunu çözmek için sadece ilgili indeks ve okulun adı (KURUM_ADI) sütununu kıyaslayıp (loc[], iloc[], at[], iat[] metotları kullanılabilir zannımca) fark olması halinde Durum bilgisi güncellenebilir.
Yeni eklenen Veri için zaten Durum bilgisi ekleniyor.

Birşeyler denedikten sonra sonucu paylaşırım.

Aşağıdaki kodu dener misin?

import pandas as pd
df_ana = pd.read_excel("Ana_Tablo.ods")
print("DF_ANA_KURUM:\n", df_ana)

df_guncel = pd.read_excel("Güncel_Kurum_Sayıları.ods")
print("\nDF_GUNCEL_KURUM:\n", df_guncel)


df_ana["Kurum_Kod_Kod1"] = df_ana["KURUM_KODU"].astype(str) + df_ana["KURUM_KODU1"].astype(str)
df_ana = df_ana.set_index("Kurum_Kod_Kod1")

df_guncel["Kurum_Kod_Kod1"] = df_guncel["KURUM_KODU"].astype(str) + df_guncel["KURUM_KODU1"].astype(str)
df_guncel = df_guncel.set_index("Kurum_Kod_Kod1")

df_ana_indeks = df_ana.index
df_guncel_indeks = df_guncel.index

df_guncel["EĞİTİM_KADEMESİ"] = df_ana["EĞİTİM_KADEMESİ"]


### Güncelleme Fonksiyonu
def guncelle():
    for indeks in df_ana.index:
        if indeks in df_guncel.index:
            if (df_ana.loc[indeks, "KURUM_ADI"] == df_guncel.loc[indeks, "KURUM_ADI"]):
                continue
            else:
                df_ana.loc[indeks, "KURUM_ADI"] = df_guncel.loc[indeks, "KURUM_ADI"]
                df_ana.loc[indeks, "DURUMU"] = "Okul Adı Değişikliği (27.04.2024)"
guncelle()

eklenecekler = []
for indeks in df_guncel_indeks:
    if indeks not in df_ana_indeks:
        eklenecekler.append(indeks)


sil = []
for indeks in df_ana_indeks:
    if indeks not in df_guncel_indeks:
        sil.append(indeks)

def satir_sil(satir):
    df_ana.drop(satir, axis = 0, inplace = True)

for satir in sil:
    satir_sil(satir)

def ekle():
    for veri in eklenecekler:
        df_ana.loc[veri] = df_guncel.loc[veri]
        df_ana.loc[veri, "DURUMU"] = "Yeni Açılış (23.03.2024)"

ekle()
print("\n\nDF_ANA_KURUM NİHAİ HAL:\n", df_ana)

ÇIKTI:

DF_ANA_KURUM:
     KURUM_KODU  KURUM_KODU1   Tipi     İLÇE                 KURUM_TÜRÜ                              KURUM_ADI EĞİTİM_KADEMESİ  SAYISI  DURUMU
0            4          4.0  RESMİ  SALİHLİ             Anadolu Lisesi                 Salihli Anadolu Lisesi     ORTAÖĞRETİM       1     NaN
1           56         56.0  RESMİ  SALİHLİ                    İlkokul                         Hisar İlkokulu         İLKOKUL       1     NaN
2            3          3.0  RESMİ  SALİHLİ    Anadolu Meslek Programı       Mesleki ve Teknik Anadolu Lisesi     ORTAÖĞRETİM       1     NaN
3            1          1.0  RESMİ  SALİHLİ          İmam Hatip Lisesi              Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1     NaN
4           11         11.0  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi              Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1     NaN
5            2          2.0  RESMİ  OSMANLI          İmam Hatip Lisesi  Osmanlı Kız Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1     NaN
6            2          NaN  RESMİ  OSMANLI          İmam Hatip Lisesi  Osmanlı Kız Anadolu İmam Hatip Lisesi        ORTAOKUL       1     NaN
7            8          8.0  RESMİ   SARICA                    İlkokul                       Atatürk İlkokulu         İLKOKUL       1     NaN
8            7          7.0  RESMİ   SARICA                   Ortaokul                      Atatürk Ortaokulu        ORTAOKUL       1     NaN
9            9          9.0  RESMİ   SARICA                    İlkokul                        Sarıca İlkokulu         İLKOKUL       1     NaN
10           5          5.0  RESMİ  SALİHLİ                    İlkokul                       Atatürk İlkokulu         İLKOKUL       1     NaN
11           6          6.0  RESMİ  SALİHLİ                    İlkokul                       75. Yıl ilkokulu         İLKOKUL       1     NaN
12          55         55.0  RESMİ  SALİHLİ                    İlkokul                   Selam Verdi İlkokulu         İLKOKUL       1     NaN

DF_GUNCEL_KURUM:
     KURUM_KODU  KURUM_KODU1   Tipi     İLÇE                 KURUM_TÜRÜ                              KURUM_ADI  SAYISI  DURUMU
0            4          4.0  RESMİ  SALİHLİ             Anadolu Lisesi                 Salihli Anadolu Lisesi       2     NaN
1            3          3.0  RESMİ  SALİHLİ  Anadolu Meslek Programı 6       Mesleki ve Teknik Anadolu Lisesi       3     NaN
2            1          1.0  RESMİ  SALİHLİ          İmam Hatip Lisesi              Anadolu İmam Hatip Lisesi       4     NaN
3           11         11.0  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi              Anadolu İmam Hatip Lisesi       5     NaN
4           72         71.0  RESMİ  OSMANLI                 İlkokul 66                     Narlıdere İlkokulu       6     NaN
5            2          2.0  RESMİ  OSMANLI        İmam Hatip Lisesi 4  Osmanlı Kız Anadolu İmam Hatip Lisesi       7     NaN
6            2          NaN  RESMİ  OSMANLI          İmam Hatip Lisesi  Osmanlı Kız Anadolu İmam Hatip Lisesi       8     NaN
7            8          8.0  RESMİ   SARICA                 İlkokul 56                       Atatürk İlkokulu       9     NaN
8            7          7.0  RESMİ   SARICA                   Ortaokul                      Atatürk Ortaokulu      10     NaN
9            9          9.0  RESMİ   SARICA                    İlkokul                        Sarıca İlkokulu      11     NaN
10           5          5.0  RESMİ  SALİHLİ                 İlkokul 34                          Gazi İlkokulu      12     NaN
11           6          6.0  RESMİ  SALİHLİ                    İlkokul                       75. Yıl ilkokulu      13     NaN
12          21         21.0  RESMİ  SALİHLİ                    İlkokul                        Subaşı İlkokulu      14     NaN


DF_ANA_KURUM NİHAİ HAL:
                 KURUM_KODU  KURUM_KODU1   Tipi     İLÇE                 KURUM_TÜRÜ                              KURUM_ADI EĞİTİM_KADEMESİ  SAYISI                             DURUMU
Kurum_Kod_Kod1
44.0                     4          4.0  RESMİ  SALİHLİ             Anadolu Lisesi                 Salihli Anadolu Lisesi     ORTAÖĞRETİM       1                                NaN
33.0                     3          3.0  RESMİ  SALİHLİ    Anadolu Meslek Programı       Mesleki ve Teknik Anadolu Lisesi     ORTAÖĞRETİM       1                                NaN
11.0                     1          1.0  RESMİ  SALİHLİ          İmam Hatip Lisesi              Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1                                NaN
1111.0                  11         11.0  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi              Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1                                NaN
22.0                     2          2.0  RESMİ  OSMANLI          İmam Hatip Lisesi  Osmanlı Kız Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1                                NaN
2nan                     2          NaN  RESMİ  OSMANLI          İmam Hatip Lisesi  Osmanlı Kız Anadolu İmam Hatip Lisesi        ORTAOKUL       1                                NaN
88.0                     8          8.0  RESMİ   SARICA                    İlkokul                       Atatürk İlkokulu         İLKOKUL       1                                NaN
77.0                     7          7.0  RESMİ   SARICA                   Ortaokul                      Atatürk Ortaokulu        ORTAOKUL       1                                NaN
99.0                     9          9.0  RESMİ   SARICA                    İlkokul                        Sarıca İlkokulu         İLKOKUL       1                                NaN
55.0                     5          5.0  RESMİ  SALİHLİ                    İlkokul                          Gazi İlkokulu         İLKOKUL       1  Okul Adı Değişikliği (27.04.2024)
66.0                     6          6.0  RESMİ  SALİHLİ                    İlkokul                       75. Yıl ilkokulu         İLKOKUL       1                                NaN
7271.0                  72         71.0  RESMİ  OSMANLI                 İlkokul 66                     Narlıdere İlkokulu             NaN       6           Yeni Açılış (23.03.2024)
2121.0                  21         21.0  RESMİ  SALİHLİ                    İlkokul                        Subaşı İlkokulu             NaN      14           Yeni Açılış (23.03.2024)
1 Beğeni

Hocam, Teşekkür ederim. Elinize emeğinize sağlık.

Hocam, bu şekilde verileri ekleme, güncelleme işlemlerini yapıyorum.

Birde Ana_tabloda, yeni eklenen kurumların Eğitim_Kademesi başlığı boş.

Buraya;
Eğer Okul_Adında İlkokul veya II. Kademe var ise Eğitim_Kademesi başlına ‘İLKOKUL’ yazsın,
Eğer Okul_Adında Lisesi veya Merkezi var ise Eğitim_Kademesi başlına ‘ORAÖĞRETİM’ yazsın getirebilir miyiz.

Kodun sonuna aşağıdaki kod parçasını ekleyerek deneyebilirsin.

def egitim_durumu(okul):
    if ("İlkokul" in okul) or ("II. Kademe" in okul) or ("Ortaokulu" in okul):
        return "İLKOKUL"
    elif ("Lisesi" in okul) or ("Merkezi" in okul):
        return "ORTAÖĞRETİM"

df_ana["EĞİTİM_KADEMESİ"] = df_ana["KURUM_ADI"].apply(egitim_durumu)

print("\n\nDF_ANA_KURUM EĞİTİM_KADEMESİ EKLENMİŞ NİHAİ HAL:\n", df_ana)

Çıktı:

DF_ANA_KURUM EĞİTİM_KADEMESİ EKLENMİŞ NİHAİ HAL:
                 KURUM_KODU  KURUM_KODU1   Tipi     İLÇE                 KURUM_TÜRÜ                              KURUM_ADI EĞİTİM_KADEMESİ  SAYISI                             DURUMU
Kurum_Kod_Kod1                                                                                                                                                                      
44.0                     4          4.0  RESMİ  SALİHLİ             Anadolu Lisesi                 Salihli Anadolu Lisesi     ORTAÖĞRETİM       1                                NaN
33.0                     3          3.0  RESMİ  SALİHLİ    Anadolu Meslek Programı       Mesleki ve Teknik Anadolu Lisesi     ORTAÖĞRETİM       1                                NaN
11.0                     1          1.0  RESMİ  SALİHLİ          İmam Hatip Lisesi              Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1                                NaN
1111.0                  11         11.0  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi              Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1                                NaN
22.0                     2          2.0  RESMİ  OSMANLI          İmam Hatip Lisesi  Osmanlı Kız Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1                                NaN
2nan                     2          NaN  RESMİ  OSMANLI          İmam Hatip Lisesi  Osmanlı Kız Anadolu İmam Hatip Lisesi     ORTAÖĞRETİM       1                                NaN
88.0                     8          8.0  RESMİ   SARICA                    İlkokul                       Atatürk İlkokulu         İLKOKUL       1                                NaN
77.0                     7          7.0  RESMİ   SARICA                   Ortaokul                      Atatürk Ortaokulu         İLKOKUL       1                                NaN
99.0                     9          9.0  RESMİ   SARICA                    İlkokul                        Sarıca İlkokulu         İLKOKUL       1                                NaN
55.0                     5          5.0  RESMİ  SALİHLİ                    İlkokul                        Gazi II. Kademe         İLKOKUL       1  Okul Adı Değişikliği (27.04.2024)
66.0                     6          6.0  RESMİ  SALİHLİ                    İlkokul                       75. Yıl İlkokulu         İLKOKUL       1                                NaN
7271.0                  72         71.0  RESMİ  SALİHLİ                    İlkokul                     Narlıdere İlkokulu         İLKOKUL       6           Yeni Açılış (23.03.2024)
2121.0                  21         21.0  RESMİ   SUBAŞI                    İlkokul                        Subaşı İlkokulu         İLKOKUL      14           Yeni Açılış (23.03.2024)
1 Beğeni

Hocam, elinize emeğinize sağlık. Teşekkür ederim

Kodun son hali;

import pandas as pd
from openpyxl import load_workbook
import datetime
import time

df_ana = pd.read_excel("Ana_Tablo.xlsx")
df_guncel = pd.read_excel("Güncel_Kurum_Sayıları.xlsx")


df_ana["Kurum_Kod_Kod1"] = df_ana["KURUM_KODU"].astype(str) + df_ana["KURUM_KODU1"].astype(str)
df_ana = df_ana.set_index("Kurum_Kod_Kod1")

df_guncel["Kurum_Kod_Kod1"] = df_guncel["KURUM_KODU"].astype(str) + df_guncel["KURUM_KODU1"].astype(str)
df_guncel = df_guncel.set_index("Kurum_Kod_Kod1")

df_ana_indeks = df_ana.index
df_guncel_indeks = df_guncel.index

### Güncelleme Fonksiyonu
def guncelle():
    for indeks in df_ana.index:
        if indeks in df_guncel.index:
            if (df_ana.loc[indeks, "KURUM_ADI"] == df_guncel.loc[indeks, "KURUM_ADI"]):
                continue
            else:
                df_ana.loc[indeks, "KURUM_ADI"] = df_guncel.loc[indeks, "KURUM_ADI"]
                df_ana.loc[indeks, "DURUMU"] = datetime.date.today().__format__('Kurum Adı Değişikliği' +" "+"("+ ('%d.%m.%Y'))+')'

                if (df_ana.loc[indeks, "KURUM_TÜRÜ"]!= df_guncel.loc[indeks, "KURUM_TÜRÜ"]):
                               df_ana.loc[indeks, "KURUM_TÜRÜ"] = df_guncel.loc[indeks, "KURUM_TÜRÜ"]                             
guncelle()

eklenecekler = []
for indeks in df_guncel_indeks:
    if indeks not in df_ana_indeks:
        eklenecekler.append(indeks)

sil = []
for indeks in df_ana_indeks:
    if indeks not in df_guncel_indeks:
        sil.append(indeks)

def satir_sil(satir):
    df_ana.drop(satir, axis = 0, inplace = True)

for satir in sil:
    satir_sil(satir)

def ekle():
    for veri in eklenecekler:
        df_ana.loc[veri] = df_guncel.loc[veri]
        df_ana.loc[veri, "DURUMU"] =datetime.date.today().__format__('Yeni Açılış' +" "+"("+ ('%d.%m.%Y'))+')'
        df_ana.loc[veri, "SAYISI"] = 1
ekle()
print("\n\nDF_ANA_KURUM NİHAİ HAL:\n", df_ana)
#------------------------------------------------------------------------------------------------------------------
def egitim_durumu(okul):
    if ("İlkokul" in okul) or ("I. Kademe" in okul):
        return "İLKOKUL"
    elif ("Ortaokul" in okul) or ("II. Kademe" in okul):
        return "ORTAOKUL"
    elif ("Lisesi" in okul) or ("Merkezi" in okul) or ("III. Kademe" in okul):
        return "ORTAÖĞRETİM"
df_ana["EĞİTİM_KADEMESİ"] = df_ana["KURUM_ADI"].apply(egitim_durumu)
#print("\n\nDF_ANA_KURUM EĞİTİM_KADEMESİ EKLENMİŞ NİHAİ HAL:\n", df_ana)
#---------------------------------------------------------------------------------------------------------------
df_ana=df_ana.set_index("KURUM_KODU")
df_ana=df_ana.sort_values(by=['İLÇE','KURUM_ADI'])

print(df_ana)
#------------------------------------------------------------------------------------------------------------
# Kaydet
def write_excel(filename, Sayfa, dataframe):
    with pd.ExcelWriter(filename, engine='openpyxl', mode='a') as writer: 
        workBook = writer.book
        try:
            workBook.remove(workBook[Sayfa])
        except:
            print("Worksheet does not exist")
        finally:
            dataframe.to_excel(writer, sheet_name='Ana_Tablo')
            writer._save()
filename = (Ana_Tablo.xlsx")
write_excel(filename, "Ana_Tablo" ,df_ana)

wb = load_workbook(filename)
sa = len(wb.sheetnames)     # sekme adları sayısı
wb.move_sheet("Ana_Tablo", offset = -(sa-1))
wb.save(filename)

Rica ederim.
İş görür bir kod çıktı ortaya desene :slight_smile:
Emeğimizin karşılığını almak güzel.

1 Beğeni