İçeriğe geç

Pandas – Derin Öğrenme Gün 3

Eğitim Pandas kütüphanesi analtmakla devam ediyor. Bugün eğitim içerisinde verileri okuduktan sonra dataframe içerisinde uygun formata nasıl getirebileceğimizi gördük. Örnek olması açısından mesela aşağıdaki gibi bir veri olabilir.

Şehir,Tarih,Sıcaklık(°C)
İstanbul,2024-06-15,24.8
Ankara,2024-06-15,
İzmir,2024-06-15,29.6
Antalya,2024-06-15,18.2
Bursa,2024-06-15,23.8
Gaziantep,2024-06-15,32.6
İstanbul,2024-06-16,
Ankara,2024-06-16,28.0
İzmir,2024-06-16,
Antalya,2024-06-16,32.2
Bursa,2024-06-16,33.8
Gaziantep,2024-06-16,16.5
İstanbul,2024-06-17,23.2
Ankara,2024-06-17,20.1
İzmir,2024-06-17,25.4
Antalya,2024-06-17,32.9
Bursa,2024-06-17,30.7
Gaziantep,2024-06-17,30.6
İstanbul,2024-06-18,20.5
Ankara,2024-06-18,22.5
İzmir,2024-06-18,33.8
Antalya,2024-06-18,23.3
Bursa,2024-06-18,
Gaziantep,2024-06-18,24.7
İstanbul,2024-06-19,23.6
Ankara,2024-06-19,19.5
İzmir,2024-06-19,30.0
Antalya,2024-06-19,18.8
Bursa,2024-06-19,
Gaziantep,2024-06-19,32.9
İstanbul,2024-06-20,24.0
Ankara,2024-06-20,34.3
İzmir,2024-06-20,31.6
Antalya,2024-06-20,19.6
Bursa,2024-06-20,27.0
Gaziantep,2024-06-20,25.8
İstanbul,2024-06-21,15.4
Ankara,2024-06-21,24.4
İzmir,2024-06-21,30.9
Antalya,2024-06-21,21.8
Bursa,2024-06-21,30.8
Gaziantep,2024-06-21,27.5
İstanbul,2024-06-22,30.7
Ankara,2024-06-22,28.4
İzmir,2024-06-22,
Antalya,2024-06-22,25.1
Bursa,2024-06-22,
Gaziantep,2024-06-22,31.2
İstanbul,2024-06-23,
Ankara,2024-06-23,25.5
İzmir,2024-06-23,18.5
Antalya,2024-06-23,22.1
Bursa,2024-06-23,31.6
Gaziantep,2024-06-23,25.6
İstanbul,2024-06-24,29.1
Ankara,2024-06-24,29.9
İzmir,2024-06-24,24.1
Antalya,2024-06-24,20.4
Bursa,2024-06-24,
Gaziantep,2024-06-24,31.9

Burada görüldüğü üzere aslında şehir isimleri tekrar ediyor ve bunu dataframe ile sanki bir pivot tablo gibi göstermek isteyebiliriz. index kısmında tarihler, column kısmında Şehirler ve data kısmında ise sıcaklıklar olmalıdır. Bunun için yapılması gereken dönüşüm bu şekildedeir.

import numpy as np
import pandas as pd

data = pd.read_csv('hava_durumu.csv')
print("Orijinal veri:")
print(data.head())

#Seri'den 2 boyutlu DataFrame'e dönüştürme
count_Tarih = len(data["Tarih"].unique())
count_Sehir = len(data["Şehir"].unique())
sicakliklar = data["Sıcaklık(°C)"].values.reshape(count_Tarih, count_Sehir)

df = pd.DataFrame(columns=data["Şehir"].unique(), index=data["Tarih"].unique(), data=sicakliklar)
print(df)
Orijinal veri:
      Şehir       Tarih  Sıcaklık(°C)
0  İstanbul  2024-06-15          24.8
1    Ankara  2024-06-15           NaN
2     İzmir  2024-06-15          29.6
3   Antalya  2024-06-15          18.2
4     Bursa  2024-06-15          23.8
            İstanbul  Ankara  İzmir  Antalya  Bursa  Gaziantep
2024-06-15      24.8     NaN   29.6     18.2   23.8       32.6
2024-06-16       NaN    28.0    NaN     32.2   33.8       16.5
2024-06-17      23.2    20.1   25.4     32.9   30.7       30.6
2024-06-18      20.5    22.5   33.8     23.3    NaN       24.7
2024-06-19      23.6    19.5   30.0     18.8    NaN       32.9
2024-06-20      24.0    34.3   31.6     19.6   27.0       25.8
2024-06-21      15.4    24.4   30.9     21.8   30.8       27.5
2024-06-22      30.7    28.4    NaN     25.1    NaN       31.2
2024-06-23       NaN    25.5   18.5     22.1   31.6       25.6
2024-06-24      29.1    29.9   24.1     20.4    NaN       31.9

Görüldüğü üzere burada aslında bazı NaN değerler var. Bu değerleri istediğimiz gibi değiştirebiliriz. Örneğin:

print("NaN değerlerini kontrol etme:")
print(df.isnull().sum())

print("NaN değerlerini ortalama ile doldurma:")
new_df = df.fillna(df.mean())
print(new_df)
NaN değerlerini kontrol etme:
İstanbul     2
Ankara       1
İzmir        2
Antalya      0
Bursa        4
Gaziantep    0
dtype: int64
NaN değerlerini ortalama ile doldurma:
            İstanbul     Ankara    İzmir  Antalya      Bursa  Gaziantep
2024-06-15   24.8000  25.844444  29.6000     18.2  23.800000       32.6
2024-06-16   23.9125  28.000000  27.9875     32.2  33.800000       16.5
2024-06-17   23.2000  20.100000  25.4000     32.9  30.700000       30.6
2024-06-18   20.5000  22.500000  33.8000     23.3  29.616667       24.7
2024-06-19   23.6000  19.500000  30.0000     18.8  29.616667       32.9
2024-06-20   24.0000  34.300000  31.6000     19.6  27.000000       25.8
2024-06-21   15.4000  24.400000  30.9000     21.8  30.800000       27.5
2024-06-22   30.7000  28.400000  27.9875     25.1  29.616667       31.2
2024-06-23   23.9125  25.500000  18.5000     22.1  31.600000       25.6
2024-06-24   29.1000  29.900000  24.1000     20.4  29.616667       31.9

Ya da bunları silmek isteyebilirsiniz.

print("NaN değerlerini silme:")
new_df2 = df.dropna()
print(new_df2)
NaN değerlerini silme:
            İstanbul  Ankara  İzmir  Antalya  Bursa  Gaziantep
2024-06-17      23.2    20.1   25.4     32.9   30.7       30.6
2024-06-20      24.0    34.3   31.6     19.6   27.0       25.8
2024-06-21      15.4    24.4   30.9     21.8   30.8       27.5

NaN değerlerle örnekler yapıldıktan sonra kısaca gruplama olayından bahsedildi.
Örnek verim şu şekilde:

Tarih,Şehir,Ürün,Satış_Tutarı,Miktar
2024-06-01,İzmir,Tablet,3406.3,1
2024-06-01,Antalya,Kulaklık,3414.95,3
2024-06-01,Bursa,Tablet,1655.22,8
2024-06-01,Bursa,Telefon,4315.35,4
2024-06-01,Ankara,Telefon,3235.14,9
2024-06-01,Bursa,Tablet,1185.02,8
2024-06-01,Ankara,Bilgisayar,3561.93,6
2024-06-02,Ankara,Telefon,1552.01,3
2024-06-02,Bursa,Telefon,3806.52,7
2024-06-02,Ankara,Bilgisayar,1115.12,3
2024-06-02,Ankara,Telefon,2284.68,10
2024-06-02,Ankara,Kulaklık,3520.6,7
2024-06-02,İzmir,Tablet,735.54,4
2024-06-02,Bursa,Telefon,1087.88,10
2024-06-02,Bursa,Telefon,3560.81,2
2024-06-02,İstanbul,Kulaklık,2574.94,3
2024-06-02,Bursa,Bilgisayar,2395.74,7
2024-06-02,Bursa,Tablet,4122.33,7
2024-06-02,Antalya,Telefon,2482.54,1
2024-06-02,İstanbul,Tablet,4538.81,10
2024-06-02,İstanbul,Kulaklık,1291.65,9
2024-06-02,Ankara,Tablet,1261.41,3
2024-06-03,Bursa,Tablet,1839.05,2
2024-06-03,İzmir,Telefon,4999.28,2
2024-06-03,Antalya,Tablet,3094.95,9
2024-06-03,Ankara,Kulaklık,1107.28,3
2024-06-03,Bursa,Bilgisayar,3733.21,5
2024-06-03,İstanbul,Bilgisayar,2896.66,2
2024-06-04,İzmir,Bilgisayar,2491.89,6
2024-06-04,Bursa,Tablet,3655.01,1
2024-06-04,Ankara,Telefon,3189.93,9
2024-06-04,İstanbul,Kulaklık,845.06,10
2024-06-04,Ankara,Tablet,3372.91,10
2024-06-04,Ankara,Bilgisayar,1106.56,6
2024-06-04,Bursa,Telefon,546.84,4
2024-06-04,Ankara,Tablet,2254.29,3
2024-06-04,İzmir,Tablet,3882.22,2
2024-06-04,Ankara,Tablet,3567.46,5
2024-06-04,Antalya,Bilgisayar,2113.7,7
2024-06-04,İstanbul,Bilgisayar,2327.68,9
2024-06-04,Bursa,Kulaklık,1970.68,1
2024-06-05,Ankara,Kulaklık,195.08,3
2024-06-05,İstanbul,Tablet,2577.36,5
2024-06-05,Ankara,Bilgisayar,4285.9,5
2024-06-05,Bursa,Telefon,415.1,2
2024-06-05,Bursa,Tablet,2247.83,6
2024-06-05,Antalya,Kulaklık,4062.43,4
2024-06-05,İstanbul,Tablet,3964.58,10
2024-06-05,İstanbul,Bilgisayar,520.57,6
2024-06-06,İstanbul,Telefon,3052.53,1
2024-06-06,Antalya,Bilgisayar,2192.65,4
2024-06-06,İzmir,Bilgisayar,191.72,1
2024-06-06,İstanbul,Telefon,2568.92,1
2024-06-06,İstanbul,Bilgisayar,163.3,9
2024-06-06,Ankara,Bilgisayar,1832.34,6
2024-06-06,Antalya,Tablet,1881.42,9
2024-06-06,İzmir,Bilgisayar,957.64,8
2024-06-06,Bursa,Tablet,3911.05,3
2024-06-07,Ankara,Telefon,3644.6,9
2024-06-07,Bursa,Tablet,1745.6,1
2024-06-07,İstanbul,Telefon,1414.13,4
2024-06-07,İstanbul,Telefon,3201.04,5
2024-06-07,İstanbul,Bilgisayar,4395.53,5
2024-06-08,Bursa,Kulaklık,1901.66,8
2024-06-08,Ankara,Telefon,2588.16,3
2024-06-08,İzmir,Tablet,4451.54,10
2024-06-08,İzmir,Tablet,2915.2,6
2024-06-08,Bursa,Tablet,1906.42,9
2024-06-08,Antalya,Tablet,251.81,2
2024-06-08,İstanbul,Bilgisayar,3333.39,1
2024-06-08,İstanbul,Telefon,1643.84,1
2024-06-08,Ankara,Bilgisayar,4985.31,5
2024-06-08,Bursa,Kulaklık,2816.86,10
2024-06-08,Ankara,Bilgisayar,905.52,4
2024-06-09,İstanbul,Kulaklık,1353.1,5
2024-06-09,Bursa,Bilgisayar,483.06,6
2024-06-09,İzmir,Tablet,4562.56,8
2024-06-09,Antalya,Tablet,4436.79,5
2024-06-09,İzmir,Bilgisayar,2914.2,7
2024-06-09,İstanbul,Telefon,1071.32,10
2024-06-09,İstanbul,Telefon,4915.33,4
2024-06-09,İstanbul,Tablet,2497.44,3
2024-06-09,İzmir,Tablet,131.26,3
2024-06-10,Ankara,Telefon,2224.51,5
2024-06-10,Ankara,Bilgisayar,1766.85,8
2024-06-10,Antalya,Bilgisayar,4713.13,8
2024-06-10,İzmir,Kulaklık,2399.26,1
2024-06-10,İzmir,Bilgisayar,2502.48,10
2024-06-10,İzmir,Kulaklık,3620.7,3
2024-06-10,İzmir,Bilgisayar,3479.66,9
2024-06-11,Antalya,Telefon,4902.42,5
2024-06-11,Antalya,Bilgisayar,3131.02,6
2024-06-11,İzmir,Tablet,1596.8,1
2024-06-11,Antalya,Telefon,3953.44,9
2024-06-11,İstanbul,Telefon,1463.11,6
2024-06-11,Antalya,Tablet,3217.97,1
2024-06-12,İzmir,Tablet,4001.7,7
2024-06-12,Ankara,Kulaklık,3797.07,10
2024-06-12,Ankara,Telefon,2257.88,2
2024-06-12,İstanbul,Telefon,759.1,5
2024-06-12,Ankara,Kulaklık,2800.13,8
2024-06-12,Antalya,Bilgisayar,2702.72,4
2024-06-12,Ankara,Bilgisayar,3384.2,10
2024-06-12,Antalya,Bilgisayar,880.89,9
2024-06-12,Bursa,Kulaklık,3688.77,8
2024-06-12,Ankara,Bilgisayar,2505.55,8
2024-06-12,Ankara,Bilgisayar,2219.21,2
2024-06-13,İzmir,Tablet,3389.8,10
2024-06-13,İstanbul,Bilgisayar,2879.7,9
2024-06-13,İstanbul,Tablet,929.35,2
2024-06-13,Bursa,Tablet,4679.36,3
2024-06-13,Bursa,Telefon,916.22,8
2024-06-13,Bursa,Telefon,2281.49,2
2024-06-13,Bursa,Tablet,2649.03,2
2024-06-13,Bursa,Kulaklık,1441.89,8
2024-06-13,Bursa,Kulaklık,2713.81,1
2024-06-14,İstanbul,Bilgisayar,4849.57,5
2024-06-14,İstanbul,Telefon,3961.64,2
2024-06-14,Ankara,Kulaklık,3958.42,4
2024-06-14,Ankara,Tablet,3900.24,3
2024-06-14,Ankara,Bilgisayar,3014.58,8
2024-06-14,Antalya,Bilgisayar,710.5,4
2024-06-14,İstanbul,Bilgisayar,939.89,1
2024-06-14,Antalya,Kulaklık,1211.54,8
2024-06-14,İstanbul,Telefon,4151.35,3
2024-06-14,Bursa,Kulaklık,1807.25,5
2024-06-14,Antalya,Tablet,2716.48,1
2024-06-14,Bursa,Telefon,2568.85,6
2024-06-15,Antalya,Kulaklık,3608.38,5
2024-06-15,İzmir,Tablet,1518.73,6
2024-06-15,İzmir,Kulaklık,4162.09,9
2024-06-15,İzmir,Kulaklık,555.87,10
2024-06-15,Antalya,Kulaklık,224.44,6
2024-06-16,İstanbul,Tablet,3923.06,8
2024-06-16,Antalya,Telefon,1168.45,7
2024-06-16,Bursa,Telefon,2392.07,8
2024-06-16,Ankara,Telefon,4218.39,1
2024-06-16,İstanbul,Telefon,2244.88,9
2024-06-16,Bursa,Kulaklık,619.19,2
2024-06-16,İstanbul,Tablet,1821.17,9
2024-06-16,İzmir,Tablet,2718.89,10
2024-06-16,Antalya,Kulaklık,3692.01,1
2024-06-16,İstanbul,Telefon,1119.86,9
2024-06-16,Ankara,Tablet,1767.51,7
2024-06-16,Antalya,Tablet,1874.11,6
2024-06-16,İstanbul,Bilgisayar,1386.31,2
2024-06-16,Bursa,Bilgisayar,2992.47,9
2024-06-17,Antalya,Kulaklık,1882.49,10
2024-06-17,Ankara,Kulaklık,1153.86,3
2024-06-17,Antalya,Telefon,3130.05,7
2024-06-17,Antalya,Telefon,3962.67,3
2024-06-17,Ankara,Bilgisayar,4223.04,7
2024-06-17,Ankara,Kulaklık,146.05,6
2024-06-17,Bursa,Telefon,1519.53,7
2024-06-18,Bursa,Tablet,3521.98,6
2024-06-18,İzmir,Kulaklık,3180.75,8
2024-06-18,Bursa,Telefon,3895.33,4
2024-06-18,Bursa,Kulaklık,1253.38,3
2024-06-18,Ankara,Kulaklık,4720.16,6
2024-06-18,Antalya,Kulaklık,4393.34,8
2024-06-18,İstanbul,Kulaklık,2563.72,4
2024-06-18,Ankara,Kulaklık,4732.44,10
2024-06-19,Ankara,Bilgisayar,968.13,5
2024-06-19,Bursa,Bilgisayar,223.95,3
2024-06-19,Ankara,Kulaklık,2274.05,10
2024-06-19,Bursa,Kulaklık,3334.65,9
2024-06-19,İzmir,Telefon,3716.59,3
2024-06-19,İzmir,Tablet,1095.62,4
2024-06-19,İstanbul,Bilgisayar,4814.91,7
2024-06-19,İstanbul,Telefon,1681.52,4
2024-06-19,Bursa,Tablet,4791.78,4
2024-06-19,İzmir,Tablet,2206.85,5
2024-06-19,İzmir,Bilgisayar,200.92,3
2024-06-19,Antalya,Telefon,1949.04,8
2024-06-19,İzmir,Kulaklık,2885.89,2
2024-06-19,Ankara,Telefon,4777.43,4
2024-06-20,Ankara,Tablet,3150.58,2
2024-06-20,Antalya,Tablet,4002.05,7
2024-06-20,İstanbul,Kulaklık,1793.46,8
2024-06-20,İzmir,Kulaklık,1380.03,7
2024-06-20,Antalya,Tablet,422.43,3
2024-06-20,Bursa,Telefon,3992.26,8
2024-06-20,İzmir,Kulaklık,4736.18,1
2024-06-20,Antalya,Tablet,3066.74,7
2024-06-20,Bursa,Telefon,1991.96,1
2024-06-20,Antalya,Kulaklık,1961.05,7
2024-06-20,Antalya,Telefon,4334.29,8
2024-06-20,İzmir,Telefon,1060.98,5
2024-06-20,İzmir,Bilgisayar,3540.93,7
2024-06-20,İstanbul,Bilgisayar,2141.87,8
2024-06-20,İzmir,Bilgisayar,1781.29,9
2024-06-21,İzmir,Kulaklık,2204.92,5
2024-06-21,Bursa,Bilgisayar,4542.21,4
2024-06-21,İzmir,Bilgisayar,4076.58,9
2024-06-21,Ankara,Telefon,4449.23,2
2024-06-21,İstanbul,Kulaklık,4559.3,7
2024-06-21,İzmir,Telefon,1546.09,6
2024-06-21,Bursa,Bilgisayar,1292.83,8
2024-06-21,Bursa,Kulaklık,1735.5,4
2024-06-22,Bursa,Telefon,1128.38,6
2024-06-22,Antalya,Bilgisayar,3284.66,5
2024-06-22,Antalya,Tablet,4949.63,5
2024-06-22,Antalya,Tablet,3675.8,6
2024-06-22,Antalya,Bilgisayar,2912.36,10
2024-06-22,Antalya,Kulaklık,4753.04,2
2024-06-22,Ankara,Tablet,4234.42,6
2024-06-23,İstanbul,Kulaklık,893.6,8
2024-06-23,İzmir,Bilgisayar,4191.03,6
2024-06-23,İzmir,Telefon,2531.75,7
2024-06-23,Ankara,Tablet,2776.7,10
2024-06-23,İzmir,Bilgisayar,2452.66,8
2024-06-23,İstanbul,Telefon,1706.07,2
2024-06-23,Antalya,Bilgisayar,3697.75,8
2024-06-23,Bursa,Bilgisayar,1823.55,9
2024-06-23,Ankara,Telefon,3546.45,9
2024-06-23,Ankara,Tablet,641.51,5
2024-06-23,İzmir,Kulaklık,4960.17,5
2024-06-23,Antalya,Bilgisayar,1950.2,3
2024-06-23,Antalya,Tablet,1617.26,10
2024-06-23,İstanbul,Telefon,1455.81,9
2024-06-23,İstanbul,Kulaklık,2008.25,6
2024-06-24,Ankara,Bilgisayar,501.42,7
2024-06-24,Bursa,Kulaklık,1119.64,8
2024-06-24,Ankara,Tablet,2636.88,7
2024-06-24,Bursa,Kulaklık,2148.63,5
2024-06-24,Antalya,Kulaklık,3787.49,10
2024-06-24,Ankara,Bilgisayar,2965.25,4
2024-06-24,Bursa,Bilgisayar,2012.18,9
2024-06-25,İstanbul,Bilgisayar,4380.48,2
2024-06-25,Ankara,Bilgisayar,2439.35,9
2024-06-25,Antalya,Bilgisayar,1354.23,2
2024-06-25,Antalya,Kulaklık,578.2,1
2024-06-25,Ankara,Bilgisayar,2065.83,3
2024-06-25,İstanbul,Telefon,3897.47,10
2024-06-25,İzmir,Telefon,1699.08,10
2024-06-25,Ankara,Telefon,4504.33,10
2024-06-25,Antalya,Tablet,2364.54,6
2024-06-25,Antalya,Kulaklık,1519.17,10
2024-06-26,Bursa,Bilgisayar,2546.17,6
2024-06-26,Ankara,Bilgisayar,2459.79,6
2024-06-26,Bursa,Tablet,3018.7,2
2024-06-26,İstanbul,Bilgisayar,4499.91,6
2024-06-26,İstanbul,Tablet,2741.02,8
2024-06-26,Ankara,Tablet,2768.09,5
2024-06-26,İstanbul,Kulaklık,4135.9,2
2024-06-26,Bursa,Telefon,1092.2,2
2024-06-26,Bursa,Bilgisayar,354.83,5
2024-06-26,Antalya,Tablet,3769.98,6
2024-06-26,İzmir,Kulaklık,2542.13,2
2024-06-26,Antalya,Bilgisayar,2220.64,2
2024-06-26,İstanbul,Kulaklık,4135.73,5
2024-06-26,Bursa,Telefon,2810.84,3
2024-06-27,Antalya,Telefon,3964.7,2
2024-06-27,Ankara,Tablet,1227.67,7
2024-06-27,İstanbul,Telefon,2939.8,6
2024-06-27,İzmir,Kulaklık,1136.06,5
2024-06-27,İzmir,Telefon,461.85,5
2024-06-27,Bursa,Tablet,274.32,8
2024-06-27,İzmir,Tablet,4787.67,7
2024-06-27,Ankara,Kulaklık,2127.93,10
2024-06-27,İzmir,Bilgisayar,2752.55,3
2024-06-27,Ankara,Kulaklık,654.58,4
2024-06-28,İzmir,Kulaklık,3660.98,10
2024-06-28,Antalya,Tablet,1050.06,10
2024-06-28,İstanbul,Bilgisayar,2588.17,10
2024-06-28,Ankara,Telefon,3407.36,1
2024-06-28,Antalya,Bilgisayar,4056.8,10
2024-06-28,Antalya,Tablet,990.74,8
2024-06-28,Ankara,Telefon,4785.75,10
2024-06-28,Bursa,Tablet,807.71,8
2024-06-28,Antalya,Telefon,1898.47,7
2024-06-29,Ankara,Bilgisayar,4078.26,5
2024-06-29,İstanbul,Kulaklık,2136.91,2
2024-06-29,Ankara,Telefon,699.43,8
2024-06-29,Ankara,Tablet,3292.95,1
2024-06-29,Antalya,Telefon,4842.75,2
2024-06-29,İzmir,Bilgisayar,2142.18,10
2024-06-29,Bursa,Tablet,2313.65,1
2024-06-29,Antalya,Tablet,3297.28,2
2024-06-29,İzmir,Kulaklık,788.32,4
2024-06-29,Antalya,Kulaklık,236.51,1
2024-06-29,Antalya,Tablet,859.45,8
2024-06-29,Antalya,Telefon,2330.06,1
2024-06-29,Antalya,Telefon,3244.8,10
2024-06-30,Bursa,Telefon,2318.83,4
2024-06-30,Antalya,Bilgisayar,4561.34,7
2024-06-30,Antalya,Kulaklık,681.43,3
2024-06-30,Bursa,Telefon,2260.76,8
2024-06-30,Antalya,Kulaklık,3555.09,4
2024-06-30,Ankara,Bilgisayar,1834.74,9
2024-06-30,Bursa,Tablet,743.93,9
2024-06-30,Bursa,Telefon,3145.38,10
2024-06-30,İzmir,Kulaklık,2788.25,7
2024-06-30,Antalya,Tablet,3152.89,1

Bu verilerle basit bir gruplama örneği ve çıktısı:

print("Gruplama örneği:")
data = pd.read_csv('satış_verisi.csv')
print(data.head())

print("Şehre göre ortalama satış tutarı:")
print(data.groupby('Şehir')['Satış_Tutarı'].mean())
Gruplama örneği:
        Tarih    Şehir      Ürün  Satış_Tutarı  Miktar
0  2024-06-01    İzmir    Tablet       3406.30       1
1  2024-06-01  Antalya  Kulaklık       3414.95       3
2  2024-06-01    Bursa    Tablet       1655.22       8
3  2024-06-01    Bursa   Telefon       4315.35       4
4  2024-06-01   Ankara   Telefon       3235.14       9
Şehre göre ortalama satış tutarı:
Şehir
Ankara      2681.631719
Antalya     2701.565781
Bursa       2259.140323
İstanbul    2578.303208
İzmir       2590.071176
Name: Satış_Tutarı, dtype: float64

Eğitimde son olarakda join işlemleri anlatıldı. Burada iki farklı kaynak ile çalışıldığındaki durum simüle ediliyor. Kaynaklar aşağıdaki gibidir.

MüşteriID,Ad,Şehir,Email
1,Ahmet,İstanbul,[email protected]
2,Betül,Ankara,[email protected]
3,Cem,İzmir,[email protected]
4,Deniz,Antalya,[email protected]
5,Eda,Bursa,[email protected]
6,Fatih,Gaziantep,[email protected]
SipariişID,MüşteriID,Ürün,Tutar
101,1,Laptop,5000
102,2,Telefon,3000
103,2,Tablet,2000
104,3,Kulaklık,500
105,5,Bilgisayar,4000
106,7,Monitör,1500
107,8,Yazıcı,800
108,4,Fare,200

İlk örneket inner join gösteriliyor.

#join işlemi
print("Join işlemi örneği:")
data = pd.read_csv('müşteriler.csv')
data2 = pd.read_csv('siparişler.csv')
print("Müşteriler tablosu:")
print(data.head())
print("Siparişler tablosu:")        
print(data2.head())
print("Inner Join işlemi:")
inner_join = pd.merge(data, data2, on='MüşteriID', how='inner')
print(inner_join)
Join işlemi örneği:
Müşteriler tablosu:
   MüşteriID     Ad     Şehir           Email
0          1  Ahmet  İstanbul  [email protected]
1          2  Betül    Ankara  [email protected]
2          3    Cem     İzmir    [email protected]
3          4  Deniz   Antalya  [email protected]
4          5    Eda     Bursa    [email protected]
Siparişler tablosu:
   SipariişID  MüşteriID        Ürün  Tutar
0         101          1      Laptop   5000
1         102          2     Telefon   3000
2         103          2      Tablet   2000
3         104          3    Kulaklık    500
4         105          5  Bilgisayar   4000
Inner Join işlemi:
   MüşteriID     Ad     Şehir           Email  SipariişID        Ürün  Tutar
0          1  Ahmet  İstanbul  [email protected]         101      Laptop   5000
1          2  Betül    Ankara  [email protected]         102     Telefon   3000
2          2  Betül    Ankara  [email protected]         103      Tablet   2000
3          5    Eda     Bursa    [email protected]         105  Bilgisayar   4000
4          3    Cem     İzmir    [email protected]         104    Kulaklık    500
5          4  Deniz   Antalya  [email protected]         108        Fare    200

Left join:

print("Left Join işlemi:")
left_join = pd.merge(data, data2, on='MüşteriID', how='left')
print(left_join)  
Left Join işlemi:
   MüşteriID     Ad      Şehir           Email  SipariişID        Ürün   Tutar
0          1  Ahmet   İstanbul  [email protected]       101.0      Laptop  5000.0
1          2  Betül     Ankara  [email protected]       102.0     Telefon  3000.0
2          2  Betül     Ankara  [email protected]       103.0      Tablet  2000.0
3          3    Cem      İzmir    [email protected]       104.0    Kulaklık   500.0
4          4  Deniz    Antalya  [email protected]       108.0        Fare   200.0
5          5    Eda      Bursa    [email protected]       105.0  Bilgisayar  4000.0
6          6  Fatih  Gaziantep  [email protected]         NaN         NaN     NaN

Right Join:

print("Right Join işlemi:")
right_join = pd.merge(data, data2, on='MüşteriID', how='right')
print(right_join) 
Right Join işlemi:
   MüşteriID     Ad     Şehir           Email  SipariişID        Ürün  Tutar
0          1  Ahmet  İstanbul  [email protected]         101      Laptop   5000
1          2  Betül    Ankara  [email protected]         102     Telefon   3000
2          2  Betül    Ankara  [email protected]         103      Tablet   2000
3          3    Cem     İzmir    [email protected]         104    Kulaklık    500
4          5    Eda     Bursa    [email protected]         105  Bilgisayar   4000
5          7    NaN       NaN             NaN         106     Monitör   1500
6          8    NaN       NaN             NaN         107      Yazıcı    800
7          4  Deniz   Antalya  [email protected]         108        Fare    200

Outer Join:

print("Outer Join işlemi:")
outer_join = pd.merge(data, data2, on='MüşteriID', how='outer')
print(outer_join)
Outer Join işlemi:
   MüşteriID     Ad      Şehir           Email  SipariişID        Ürün   Tutar
0          1  Ahmet   İstanbul  [email protected]       101.0      Laptop  5000.0
1          2  Betül     Ankara  [email protected]       102.0     Telefon  3000.0
2          2  Betül     Ankara  [email protected]       103.0      Tablet  2000.0
3          3    Cem      İzmir    [email protected]       104.0    Kulaklık   500.0
4          4  Deniz    Antalya  [email protected]       108.0        Fare   200.0
5          5    Eda      Bursa    [email protected]       105.0  Bilgisayar  4000.0
6          6  Fatih  Gaziantep  [email protected]         NaN         NaN     NaN
7          7    NaN        NaN             NaN       106.0     Monitör  1500.0
8          8    NaN        NaN             NaN       107.0      Yazıcı   800.0

Son olarak ise append olayından bahsedilmiştir. Burada aslında loop olarak yapmak istediğimiz işlemleri append ile kolay şekilde gerçekleştirebiliyoruz. Örnek aşağıda verilmiştir.

print("Append işlemi örneği:")

def degerlendirme(data):
    if data >= 24:
        return "Sıcak"
    elif data >= 15 and data < 24:
        return "Ilık"
    else:
        return "Soğuk"

data = pd.read_csv('hava_durumu.csv')
count_Tarih = len(data["Tarih"].unique())
count_Sehir = len(data["Şehir"].unique())
sicakliklar = data["Sıcaklık(°C)"].values.reshape(count_Tarih, count_Sehir)
df = pd.DataFrame(columns=data["Şehir"].unique(), index=data["Tarih"].unique(), data=sicakliklar)
print("Orijinal DataFrame:")
print(df)
print("Sadece İstanbul sütunu:")
new_df = pd.DataFrame(df["İstanbul"])
print(new_df)
print("Yeni sütun ekleme:")
new_df["İstanbul_Değerlendirme"] = new_df["İstanbul"].apply(degerlendirme)
print(new_df)

İşte Çıktısı:

Append işlemi örneği:
Orijinal DataFrame:
            İstanbul  Ankara  İzmir  Antalya  Bursa  Gaziantep
2024-06-15      24.8     NaN   29.6     18.2   23.8       32.6
2024-06-16       NaN    28.0    NaN     32.2   33.8       16.5
2024-06-17      23.2    20.1   25.4     32.9   30.7       30.6
2024-06-18      20.5    22.5   33.8     23.3    NaN       24.7
2024-06-19      23.6    19.5   30.0     18.8    NaN       32.9
2024-06-20      24.0    34.3   31.6     19.6   27.0       25.8
2024-06-21      15.4    24.4   30.9     21.8   30.8       27.5
2024-06-22      30.7    28.4    NaN     25.1    NaN       31.2
2024-06-23       NaN    25.5   18.5     22.1   31.6       25.6
2024-06-24      29.1    29.9   24.1     20.4    NaN       31.9
Sadece İstanbul sütunu:
            İstanbul
2024-06-15      24.8
2024-06-16       NaN
2024-06-17      23.2
2024-06-18      20.5
2024-06-19      23.6
2024-06-20      24.0
2024-06-21      15.4
2024-06-22      30.7
2024-06-23       NaN
2024-06-24      29.1
Yeni sütun ekleme:
            İstanbul İstanbul_Değerlendirme
2024-06-15      24.8                  Sıcak
2024-06-16       NaN                  Soğuk
2024-06-17      23.2                   Ilık
2024-06-18      20.5                   Ilık
2024-06-19      23.6                   Ilık
2024-06-20      24.0                  Sıcak
2024-06-21      15.4                   Ilık
2024-06-22      30.7                  Sıcak
2024-06-23       NaN                  Soğuk
2024-06-24      29.1                  Sıcak
Kategori:Derin Öğrenme

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir