Bir Excel dosyasından diğer Excel dosyasına veri alma

Merhaba Arkadaşlar
Bir Excel dosyasından diğer Excel dosyasına veri almak istiyorum.

Yapmak istediğim;
1- Ana Tablo’daki KURUM_KODU, Öğrenci_Sayıları tablosundaki "KURUM_KODU"na eşitse,
2- Ana_Tablo’daki EĞİTİM_KADEMESİ, Öğrenci_Sayıları tablosundaki "EĞİTİM_KADEMESİ"ne eşitse (OKULÖNCESİ hariç)

3_Öğrenci_Sayıları tablosundaki, öğrenci sayıları sütunlarını (ERKEK_ÖĞRENCİ, KIZ_ÖĞRENCİ ,TOPLAM_ÖĞRENCİ) Ana Tablo’daki aynı addaki sütunlara toplamlarını getirmesi

Üzerinde çalıştığım kod;

import pandas as pd

dosya = pd.read_excel(r"D:\PYTHON_DATA\ANA_TABLO.xlsx") 
df_ana= pd.DataFrame(dosya)

dosya = pd.read_excel(r"D:\PYTHON_DATA\ROPORLAR (DÜZENLENEN)\ÖĞRENCİ_SAYILARI.xlsx")
df_ogrenci = pd.DataFrame(dosya)  

df1=df_ogrenci[df_ogrenci["EĞİTİM_KADEMESİ"] != "OKULÖNCESİ"]
df2= df_ogrenci["EĞİTİM_KADEMESİ"] == df_ana["EĞİTİM_KADEMESİ"] #burasını yapamadım (iki tablo arasında eğitim kademeleri eşit olacak, okulöncesi hariç)
#ve kurum_kodları eşit olacak 

erkek = df1,df2.groupby("KURUM_KODU").sum()["ERKEK_ÖĞRENCİ"]
kız = df1,df2.groupby('KURUM_KODU').sum()["KIZ_ÖĞRENCİ"]
toplam = df1,df2.groupby(["KURUM_KODU"]).sum()["TOPLAM_ÖĞRENCİ"]

df_ana=df_ana.set_index("KURUM_KODU")

df_ana["ERKEK_ÖĞRENCİ"] = erkek
df_ana["KIZ_ÖĞRENCİ"] = kız
df_ana["TOPLAM_ÖĞRENCİ"] = toplam

#df_ana = df_ana.set_index("KURUM_KODU") # indeks değerleri ayarlanıyor.
#df1 = df1.set_index("KURUM_KODU") # indeks değerleri ayarlanıyor.

print(df_ana)
df_ana.to_excel(r"D:\PYTHON_DATA\ANA_TABLO.xlsx")

Merhaba,
Kod içerisinde kullandığın (Örnek) dosyaları ya da ekran görüntülerini paylaşabilir misin?

Hocam merhaba,


Merhaba,

OKULÖNCESİ’ni hariç tutmadan yazdığım kod aşağıdadır. (Nasıl Hariç tutulabilir biraz düşün :slight_smile: )
Excel ile çalışırken de bu tür çok sütunlu kıyas / mukayese,…vb işlemler yapacağım zaman, istenilen verileri önce bir sütunda birleştiriyor ardından işime bakıyorum.
Burada da benzer mantık uyguladım.

  • Tablolarda, başlığı Kurum_Egitim olan geçici bir sütun oluşturdum ,
  • Kurum_Egitim sütununa, KURUM_KODU ile EĞİTİM_KADEMESİ birleştirerek ekledim. Buradaki birleştirme işlemine dikkat edin. Tamsayı (integer) veri ile Metinsel (String) Veri nasıl birleştirildi !!!
  • Bu sütunu indeks olarak ayarladım,
  • Gruplama ve toplam hesaplama işlemlerini bu satır verilerini kullanarak tespit ettim ve eşleştirdim.
  • Son olarak KURUM_KODU’nu indeks olarak ayarlayarak geçici sütunu sildim.

NOT 1:
Toplam Öğrenci sayısı = Erkek Öğrenci + Kız Öğrenci metodu kullanarak hesaplattım. Yani bir tablodaki değeri alıp diğer tabloya yazmadım.

NOT 2:
Tablo içeriği, sendeki ekran görüntüsü ile birebir aynı değil. Kurum_Kodu, Sınıflar, Kız ve Erkek Öğrenci sayılarını, …vb LibreOfis ile rastgele oluşturdum.

import pandas as pd

dosya = pd.read_excel("ANA_TABLO.ods") 
df_ana= pd.DataFrame(dosya)
# print("\n\n'df_ana: '\n", df_ana)

dosya = pd.read_excel("ÖĞRENCİ_SAYILARI.ods")
df_ogrenci = pd.DataFrame(dosya)  
# print("\n\n'df_ogrenci: '\n", df_ogrenci)

df_ana["Kurum_Egitim"] = df_ana["KURUM_KODU"].astype(str) + "_" + df_ana["EĞİTİM_KADEMESİ"]   # df_ana["KURUM_KODU"].apply(str) şeklinde de kullanılabilir.
df_ana = df_ana.set_index("Kurum_Egitim")
# print("\n\n'df_ana: '\n", df_ana)

df_ogrenci["Kurum_Egitim"] = df_ogrenci["KURUM_KODU"].apply(str) + "_" + df_ogrenci["EĞİTİM_KADEMESİ"]
df_ogrenci = df_ogrenci.set_index("Kurum_Egitim")
# print("\n\n'df_ogrenci: '\n", df_ana)

df_ana["ERKEK_ÖĞRENCİ"] = df_ogrenci.groupby("Kurum_Egitim").sum()["ERKEK_ÖĞRENCİ"]
# print("\n\n'df_ana - erkek: '\n", df_ana)

df_ana["KIZ_ÖĞRENCİ"] = df_ogrenci.groupby("Kurum_Egitim").sum()["KIZ_ÖĞRENCİ"]
# print("\n\n'df_ana - kız: '\n", df_ana)

df_ana["TOPLAM_ÖĞRENCİ"] = df_ana["ERKEK_ÖĞRENCİ"] + df_ana["KIZ_ÖĞRENCİ"]
# print("\n\n'df_ana - toplam: '\n", df_ana)

df_ana = df_ana.set_index("KURUM_KODU")
print("\n\n'df_ana - toplam: '\n", df_ana)

# df_ana.drop("Kurum_Egitim", inplace= True)
df_ana.to_excel("ANA_TABLO_Sonuc.ods")

ÇIKTI:

'df_ana: '
     KURUM_KODU   TİPİ     İLÇE                 KURUM_TÜRÜ                         KURUM_ADI  ... OKUL_SAYISI DERSLİK_SAYISI  ERKEK_ÖĞRENCİ  KIZ_ÖĞRENCİ  TOPLAM_ÖĞRENCİ
0            4  RESMİ  SALİHLİ             Anadolu Lisesi            Salihli Anadolu Lisesi  ...         NaN            NaN            NaN          NaN             NaN
1            3  RESMİ  SALİHLİ    Anadolu Meslek Programı  Mesleki ve Teknik Anadolu Lisesi  ...         NaN            NaN            NaN          NaN             NaN
2            1  RESMİ  SALİHLİ          İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  ...         NaN            NaN            NaN          NaN             NaN
3            1  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  ...         NaN            NaN            NaN          NaN             NaN
4            2  RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  ...         NaN            NaN            NaN          NaN             NaN
5            2  RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  ...         NaN            NaN            NaN          NaN             NaN
6            8  RESMİ   SARICA                    İlkokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
7            7  RESMİ   SARICA                   Ortaokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
8            9  RESMİ   SARICA                    İlkokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
9            5  RESMİ  SALİHLİ                    İlkokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
10           6  RESMİ  SALİHLİ                    İlkokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN

[11 rows x 12 columns]


'df_ogrenci: '
     KURUM_KODU   TİPİ     İLÇE      GENEL_MÜDÜRLÜK                 KURUM_TÜRÜ  ... OKUL_SAYISI DERSLİK_SAYISI  ERKEK_ÖĞRENCİ  KIZ_ÖĞRENCİ TOPLAM_ÖĞRENCİ
0            5  RESMİ  SALİHLİ   4. Genel Müdürlük             Anadolu Lisesi  ...         NaN            NaN              7           19              1
1            3  RESMİ  SALİHLİ   3. Genel Müdürlük    Anadolu Meslek Programı  ...         NaN            NaN             18            6              3
2            2  RESMİ  SALİHLİ   9. Genel Müdürlük          İmam Hatip Lisesi  ...         NaN            NaN             12            8              5
3            4  RESMİ  SALİHLİ   7. Genel Müdürlük  Anadolu İmam Hatip Lisesi  ...         NaN            NaN             11            7             10
4            5  RESMİ  OSMANLI   6. Genel Müdürlük          İmam Hatip Lisesi  ...         NaN            NaN              2           13              5
5            1  RESMİ  OSMANLI   7. Genel Müdürlük          İmam Hatip Lisesi  ...         NaN            NaN              5            6              9
6            1  RESMİ   SARICA   1. Genel Müdürlük                    İlkokul  ...         NaN            NaN              2           11             20
7            3  RESMİ   SARICA   7. Genel Müdürlük                   Ortaokul  ...         NaN            NaN              4           20             12
8            6  RESMİ   SARICA   6. Genel Müdürlük                    İlkokul  ...         NaN            NaN              5           20             17
9            1  RESMİ  SALİHLİ   3. Genel Müdürlük                    İlkokul  ...         NaN            NaN              8           12              6
10           2  RESMİ  SALİHLİ  10. Genel Müdürlük                    İlkokul  ...         NaN            NaN             15           12             17
11           8  RESMİ  SALİHLİ   5. Genel Müdürlük             Anadolu Lisesi  ...         NaN            NaN              7           14              4
12           9  RESMİ  SALİHLİ   7. Genel Müdürlük    Anadolu Meslek Programı  ...         NaN            NaN              8           20              1
13           4  RESMİ  SALİHLİ   1. Genel Müdürlük          İmam Hatip Lisesi  ...         NaN            NaN             12           10              6
14           9  RESMİ  SALİHLİ   5. Genel Müdürlük  Anadolu İmam Hatip Lisesi  ...         NaN            NaN             10           15              8
15           6  RESMİ  OSMANLI   5. Genel Müdürlük          İmam Hatip Lisesi  ...         NaN            NaN             17            9             11
16           9  RESMİ  OSMANLI   9. Genel Müdürlük          İmam Hatip Lisesi  ...         NaN            NaN              8           18              7
17           1  RESMİ   SARICA  10. Genel Müdürlük                    İlkokul  ...         NaN            NaN             14           13              6
18           3  RESMİ   SARICA   9. Genel Müdürlük                   Ortaokul  ...         NaN            NaN              4            1              6
19           4  RESMİ   SARICA   1. Genel Müdürlük                    İlkokul  ...         NaN            NaN             17            2             20
20           7  RESMİ  SALİHLİ   8. Genel Müdürlük                    İlkokul  ...         NaN            NaN             13           10              5
21           7  RESMİ  SALİHLİ   5. Genel Müdürlük                    İlkokul  ...         NaN            NaN              9            7              3
22           7  RESMİ  SALİHLİ   9. Genel Müdürlük             Anadolu Lisesi  ...         NaN            NaN             13            1              4
23           2  RESMİ  SALİHLİ   7. Genel Müdürlük    Anadolu Meslek Programı  ...         NaN            NaN              4           16              9
24           5  RESMİ  SALİHLİ  10. Genel Müdürlük          İmam Hatip Lisesi  ...         NaN            NaN             20            5             17
25           8  RESMİ  SALİHLİ   6. Genel Müdürlük  Anadolu İmam Hatip Lisesi  ...         NaN            NaN             16           20             14
26           6  RESMİ  OSMANLI   6. Genel Müdürlük          İmam Hatip Lisesi  ...         NaN            NaN             17           20             20
27           5  RESMİ  OSMANLI   9. Genel Müdürlük          İmam Hatip Lisesi  ...         NaN            NaN              5           17             12
28           2  RESMİ   SARICA   1. Genel Müdürlük                    İlkokul  ...         NaN            NaN              2           15              7
29           9  RESMİ   SARICA   1. Genel Müdürlük                   Ortaokul  ...         NaN            NaN              9           14              2
30           8  RESMİ   SARICA   2. Genel Müdürlük                    İlkokul  ...         NaN            NaN             15            5              5
31           7  RESMİ  SALİHLİ   9. Genel Müdürlük                    İlkokul  ...         NaN            NaN             18           13             15
32           6  RESMİ  SALİHLİ  10. Genel Müdürlük                    İlkokul  ...         NaN            NaN             17           13             13
33           4  RESMİ  SALİHLİ   8. Genel Müdürlük                    İlkokul  ...         NaN            NaN              1           14             18

[34 rows x 16 columns]


'df_ana - Kurum_Egitim: '
                KURUM_KODU   TİPİ     İLÇE                 KURUM_TÜRÜ                         KURUM_ADI  ... OKUL_SAYISI DERSLİK_SAYISI  ERKEK_ÖĞRENCİ  KIZ_ÖĞRENCİ  TOPLAM_ÖĞRENCİ
Kurum_Egitim                                                                                            ...                                                                       
4_ORTAÖĞRETİM           4  RESMİ  SALİHLİ             Anadolu Lisesi            Salihli Anadolu Lisesi  ...         NaN            NaN            NaN          NaN             NaN
3_ORTAÖĞRETİM           3  RESMİ  SALİHLİ    Anadolu Meslek Programı  Mesleki ve Teknik Anadolu Lisesi  ...         NaN            NaN            NaN          NaN             NaN
1_ORTAÖĞRETİM           1  RESMİ  SALİHLİ          İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  ...         NaN            NaN            NaN          NaN             NaN
1_ORTAÖĞRETİM           1  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  ...         NaN            NaN            NaN          NaN             NaN
2_ORTAÖĞRETİM           2  RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  ...         NaN            NaN            NaN          NaN             NaN
2_ORTAOKUL              2  RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  ...         NaN            NaN            NaN          NaN             NaN
8_İLKOKUL               8  RESMİ   SARICA                    İlkokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
7_ORTAOKUL              7  RESMİ   SARICA                   Ortaokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
9_İLKOKUL               9  RESMİ   SARICA                    İlkokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
5_İLKOKUL               5  RESMİ  SALİHLİ                    İlkokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
6_İLKOKUL               6  RESMİ  SALİHLİ                    İlkokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN

[11 rows x 12 columns]


'df_ogrenci indeks Kurum_Egitim: '
                KURUM_KODU   TİPİ     İLÇE                 KURUM_TÜRÜ                         KURUM_ADI  ... OKUL_SAYISI DERSLİK_SAYISI  ERKEK_ÖĞRENCİ  KIZ_ÖĞRENCİ  TOPLAM_ÖĞRENCİ
Kurum_Egitim                                                                                            ...                                                                       
4_ORTAÖĞRETİM           4  RESMİ  SALİHLİ             Anadolu Lisesi            Salihli Anadolu Lisesi  ...         NaN            NaN            NaN          NaN             NaN
3_ORTAÖĞRETİM           3  RESMİ  SALİHLİ    Anadolu Meslek Programı  Mesleki ve Teknik Anadolu Lisesi  ...         NaN            NaN            NaN          NaN             NaN
1_ORTAÖĞRETİM           1  RESMİ  SALİHLİ          İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  ...         NaN            NaN            NaN          NaN             NaN
1_ORTAÖĞRETİM           1  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  ...         NaN            NaN            NaN          NaN             NaN
2_ORTAÖĞRETİM           2  RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  ...         NaN            NaN            NaN          NaN             NaN
2_ORTAOKUL              2  RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  ...         NaN            NaN            NaN          NaN             NaN
8_İLKOKUL               8  RESMİ   SARICA                    İlkokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
7_ORTAOKUL              7  RESMİ   SARICA                   Ortaokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
9_İLKOKUL               9  RESMİ   SARICA                    İlkokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
5_İLKOKUL               5  RESMİ  SALİHLİ                    İlkokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
6_İLKOKUL               6  RESMİ  SALİHLİ                    İlkokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN

[11 rows x 12 columns]


'df_ana - erkek: '
                KURUM_KODU   TİPİ     İLÇE                 KURUM_TÜRÜ                         KURUM_ADI  ... OKUL_SAYISI DERSLİK_SAYISI  ERKEK_ÖĞRENCİ  KIZ_ÖĞRENCİ  TOPLAM_ÖĞRENCİ
Kurum_Egitim                                                                                            ...                                                                       
4_ORTAÖĞRETİM           4  RESMİ  SALİHLİ             Anadolu Lisesi            Salihli Anadolu Lisesi  ...         NaN            NaN            NaN          NaN             NaN
3_ORTAÖĞRETİM           3  RESMİ  SALİHLİ    Anadolu Meslek Programı  Mesleki ve Teknik Anadolu Lisesi  ...         NaN            NaN           18.0          NaN             NaN
1_ORTAÖĞRETİM           1  RESMİ  SALİHLİ          İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  ...         NaN            NaN            7.0          NaN             NaN
1_ORTAÖĞRETİM           1  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  ...         NaN            NaN            7.0          NaN             NaN
2_ORTAÖĞRETİM           2  RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  ...         NaN            NaN            6.0          NaN             NaN
2_ORTAOKUL              2  RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  ...         NaN            NaN           12.0          NaN             NaN
8_İLKOKUL               8  RESMİ   SARICA                    İlkokul                               NaN  ...         NaN            NaN           38.0          NaN             NaN
7_ORTAOKUL              7  RESMİ   SARICA                   Ortaokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
9_İLKOKUL               9  RESMİ   SARICA                    İlkokul                               NaN  ...         NaN            NaN            8.0          NaN             NaN
5_İLKOKUL               5  RESMİ  SALİHLİ                    İlkokul                               NaN  ...         NaN            NaN           14.0          NaN             NaN
6_İLKOKUL               6  RESMİ  SALİHLİ                    İlkokul                               NaN  ...         NaN            NaN           17.0          NaN             NaN

[11 rows x 12 columns]


'df_ana - kız: '
                KURUM_KODU   TİPİ     İLÇE                 KURUM_TÜRÜ                         KURUM_ADI  ... OKUL_SAYISI DERSLİK_SAYISI  ERKEK_ÖĞRENCİ  KIZ_ÖĞRENCİ  TOPLAM_ÖĞRENCİ
Kurum_Egitim                                                                                            ...                                                                       
4_ORTAÖĞRETİM           4  RESMİ  SALİHLİ             Anadolu Lisesi            Salihli Anadolu Lisesi  ...         NaN            NaN            NaN          NaN             NaN
3_ORTAÖĞRETİM           3  RESMİ  SALİHLİ    Anadolu Meslek Programı  Mesleki ve Teknik Anadolu Lisesi  ...         NaN            NaN           18.0          6.0             NaN
1_ORTAÖĞRETİM           1  RESMİ  SALİHLİ          İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  ...         NaN            NaN            7.0         17.0             NaN
1_ORTAÖĞRETİM           1  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  ...         NaN            NaN            7.0         17.0             NaN
2_ORTAÖĞRETİM           2  RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  ...         NaN            NaN            6.0         31.0             NaN
2_ORTAOKUL              2  RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  ...         NaN            NaN           12.0          8.0             NaN
8_İLKOKUL               8  RESMİ   SARICA                    İlkokul                               NaN  ...         NaN            NaN           38.0         39.0             NaN
7_ORTAOKUL              7  RESMİ   SARICA                   Ortaokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
9_İLKOKUL               9  RESMİ   SARICA                    İlkokul                               NaN  ...         NaN            NaN            8.0         18.0             NaN
5_İLKOKUL               5  RESMİ  SALİHLİ                    İlkokul                               NaN  ...         NaN            NaN           14.0         49.0             NaN
6_İLKOKUL               6  RESMİ  SALİHLİ                    İlkokul                               NaN  ...         NaN            NaN           17.0         20.0             NaN

[11 rows x 12 columns]


'df_ana - toplam = (Erkek + Kız): '
                KURUM_KODU   TİPİ     İLÇE                 KURUM_TÜRÜ                         KURUM_ADI  ... OKUL_SAYISI DERSLİK_SAYISI  ERKEK_ÖĞRENCİ  KIZ_ÖĞRENCİ  TOPLAM_ÖĞRENCİ
Kurum_Egitim                                                                                            ...                                                                       
4_ORTAÖĞRETİM           4  RESMİ  SALİHLİ             Anadolu Lisesi            Salihli Anadolu Lisesi  ...         NaN            NaN            NaN          NaN             NaN
3_ORTAÖĞRETİM           3  RESMİ  SALİHLİ    Anadolu Meslek Programı  Mesleki ve Teknik Anadolu Lisesi  ...         NaN            NaN           18.0          6.0            24.0
1_ORTAÖĞRETİM           1  RESMİ  SALİHLİ          İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  ...         NaN            NaN            7.0         17.0            24.0
1_ORTAÖĞRETİM           1  RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  ...         NaN            NaN            7.0         17.0            24.0
2_ORTAÖĞRETİM           2  RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  ...         NaN            NaN            6.0         31.0            37.0
2_ORTAOKUL              2  RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  ...         NaN            NaN           12.0          8.0            20.0
8_İLKOKUL               8  RESMİ   SARICA                    İlkokul                               NaN  ...         NaN            NaN           38.0         39.0            77.0
7_ORTAOKUL              7  RESMİ   SARICA                   Ortaokul                               NaN  ...         NaN            NaN            NaN          NaN             NaN
9_İLKOKUL               9  RESMİ   SARICA                    İlkokul                               NaN  ...         NaN            NaN            8.0         18.0            26.0
5_İLKOKUL               5  RESMİ  SALİHLİ                    İlkokul                               NaN  ...         NaN            NaN           14.0         49.0            63.0
6_İLKOKUL               6  RESMİ  SALİHLİ                    İlkokul                               NaN  ...         NaN            NaN           17.0         20.0            37.0

[11 rows x 12 columns]


'df_ana - indeks KURUM_KODU: '
              TİPİ     İLÇE                 KURUM_TÜRÜ                         KURUM_ADI    SINIF1 EĞİTİM_KADEMESİ  OKUL_SAYISI  DERSLİK_SAYISI  ERKEK_ÖĞRENCİ  KIZ_ÖĞRENCİ  TOPLAM_ÖĞRENCİ
KURUM_KODU                                                                                                                                                                                
4           RESMİ  SALİHLİ             Anadolu Lisesi            Salihli Anadolu Lisesi  9. SINIF     ORTAÖĞRETİM          NaN             NaN            NaN          NaN             NaN
3           RESMİ  SALİHLİ    Anadolu Meslek Programı  Mesleki ve Teknik Anadolu Lisesi  9. SINIF     ORTAÖĞRETİM          NaN             NaN           18.0          6.0            24.0
1           RESMİ  SALİHLİ          İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  9. SINIF     ORTAÖĞRETİM          NaN             NaN            7.0         17.0            24.0
1           RESMİ  SALİHLİ  Anadolu İmam Hatip Lisesi         Anadolu İmam Hatip Lisesi  9. SINIF     ORTAÖĞRETİM          NaN             NaN            7.0         17.0            24.0
2           RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  9. SINIF     ORTAÖĞRETİM          NaN             NaN            6.0         31.0            37.0
2           RESMİ  OSMANLI          İmam Hatip Lisesi                               NaN  5. SINIF        ORTAOKUL          NaN             NaN           12.0          8.0            20.0
8           RESMİ   SARICA                    İlkokul                               NaN  1. SINIF         İLKOKUL          NaN             NaN           38.0         39.0            77.0
7           RESMİ   SARICA                   Ortaokul                               NaN  1. SINIF        ORTAOKUL          NaN             NaN            NaN          NaN             NaN
9           RESMİ   SARICA                    İlkokul                               NaN  1. SINIF         İLKOKUL          NaN             NaN            8.0         18.0            26.0
5           RESMİ  SALİHLİ                    İlkokul                               NaN  1. SINIF         İLKOKUL          NaN             NaN           14.0         49.0            63.0
6           RESMİ  SALİHLİ                    İlkokul                               NaN  1. SINIF         İLKOKUL          NaN             NaN           17.0         20.0            37.0
2 Beğeni

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

Haklısınız, eğitim kademesine göre ayırıyor.

Hocam, denedim tamamdır.
Hocam, bu işlemi pandas sql ile yapabilir miyiz

import pandas as pd
import sqlite3

dosya = pd.read_excel(r"C:\Users\ErdalOZDEMIR\Desktop\PYTHON_DATA\ANA_TABLO.xlsx") 
df_ana= pd.DataFrame(dosya)


conn = sqlite3.connect(r"C:\Users\ErdalOZDEMIR\Desktop\PYTHON_DATA\ROPORLAR (DÜZENLENEN)\ÖĞRENCİ_SAYILARI.xlsx")

sql = ("SELECT KURUM_KODU, EĞİTİM_KADEMESİ,Sum(ERKEK_ÖĞRENCİ),Sum(KIZ_ÖĞRENCİ),Sum(TOPLAM_ÖĞRENCİ)"
       "FROM ÖĞRENCİ_SAYILARI groupby KURUM_KODU,EĞİTİM_KADEMESİ"
       "WHERE(EĞİTİM_KADEMESİ=İLKOKUL,ORTAOKUL,ORTAÖĞRETİM")






print(sql)
conn.close()

Rica ederim.
SQL (programlama) dili hakkında bilgim yok maalesef

Hocam Merhaba,

Öğrenci sayılarıyla ilgili; Verileri Ana tabloya aktarınca yanındaki tüm sayfalar siliniyor. Bunun bir çözümü var mı

Bende hiç bir veri silinmiyor.
Zira sadece Ana Dosyadaki ERKEK_ÖĞRENCİ ve KIZ_ÖĞRENCİ sütunlarında işlem yapıyoruz.
Son gönderdiğim mesajdaki kodu mu kullanıyorsun?

Hocam veriler silinmiyor, yanındaki diğer sayfalar siliniyor. Son gönderdiğiniz kodu kullanıyorum.

Aferdesin, yanlış anladım.

İstediğin için aşağıdaki kodu inceleyip kendi koduna uyarlayabilirsin.
önceki mesajımda yazdığım kodların sonundaki şu kısmı df_ana.to_excel("ANA_TABLO_Sonuc.ods") sil, yerine aşağıdaki kodu (uyarlayıp) ekle

filename = "ANA_TABLO.xlsx"

def write_excel(filename,Sayfa1,dataframe):
    with pd.ExcelWriter(filename, engine='openpyxl', mode='a') as writer: 
        workBook = writer.book
        try:
            workBook.remove(workBook[Sayfa1])
        except:
            print("Worksheet does not exist")
        finally:
            dataframe.to_excel(writer, sheet_name=Sayfa1,index=False)
            writer._save()

write_excel(filename,'Sayfa1',df_ana)

Pandas’ın ExcelWriter metodundaki mode parametresi işimizi çözüyor.
mode parametresi iki değer alabiliyor. {w : yaz, a : ekle}, Varsayılan mod w yani yazma modu.

Önce df_ana verisini istediğimiz gibi elde ediyoruz. Yazma aşamasına getiriyoruz.
Ardından Excel dosyasındaki İlgili sekmeyi silip, aynı isimle yeniden EKLİYORUZ

Kaynaklar

1 Beğeni

Hocam Merhaba,

Teşekkür ederim
Hocam denedim; Sayfayı en sona atıyor, ayrıca dosyayı açtığımızda tekrar kayıt istiyor.

Rica ederim.
Sekmeyi, excel’in ilk sekmesine taşımak için openpyxl kütüphanesinin move_sheet() metodunu kullanabilirsin.
Dosyayı açtığımda benden tekrar kayıt istemiyor.

from openpyxl import load_workbook

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

Kodun tamamı ; (İlk Sekmeye taşımaya çalıştığım sekmenin adı: “Sayfa1”)

import pandas as pd
from openpyxl import Workbook
from openpyxl import load_workbook

dosya = pd.read_excel("ANA_TABLO.ods") 
df_ana= pd.DataFrame(dosya)

dosya = pd.read_excel("ÖĞRENCİ_SAYILARI.ods")
df_ogrenci = pd.DataFrame(dosya)  

df_ana["Kurum_Egitim"] = df_ana["KURUM_KODU"].astype(str) + "_" + df_ana["EĞİTİM_KADEMESİ"]   # df_ana["KURUM_KODU"].apply(str) şeklinde de kullanılabilir.
df_ana = df_ana.set_index("Kurum_Egitim")

df_ogrenci["Kurum_Egitim"] = df_ogrenci["KURUM_KODU"].apply(str) + "_" + df_ogrenci["EĞİTİM_KADEMESİ"]
df_ogrenci = df_ogrenci.set_index("Kurum_Egitim")

df_ana["ERKEK_ÖĞRENCİ"] = df_ogrenci.groupby("Kurum_Egitim").sum()["ERKEK_ÖĞRENCİ"]
df_ana["KIZ_ÖĞRENCİ"] = df_ogrenci.groupby("Kurum_Egitim").sum()["KIZ_ÖĞRENCİ"]
df_ana["TOPLAM_ÖĞRENCİ"] = df_ana["ERKEK_ÖĞRENCİ"] + df_ana["KIZ_ÖĞRENCİ"]
df_ana = df_ana.set_index("KURUM_KODU")

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=Sayfa, index=False)
            writer._save()

filename = "ANA_TABLO.xlsx"
write_excel(filename, "Sayfa1" ,df_ana)

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

Kaynak

1 Beğeni

Hocam Merhaba,
Teşekkür ederim. Elinize emeğinize sağlık.
Sorun çözülmüştür. Hocam, bu öğrenci sayılarını Openpyxl ile yapabilir miyiz. Birde bunu görmek istiyorum. Yoksa başka bir konu açarak mı sorayım.
Hayırlı Akşamlar

Rica ederim.
Openpyxl kütüphanesini daha önce görmüştüm ancak pek kullanmadım.
Senin soru üzerine çözüm yolu araştırırken Openpyxl ile tekrar yolum kesişti.
Kütüphaneye ait dokümantasyon incelendiğinde Excel ile yapılabilen pek çok şey, bu kütüphane ile de yapılabilir kanaatine varıyorum.

Openpyxl Kütüphanesi Dokümantosyonu;