Anasayfa / Python / SQL Sorgularının Python Pandas Dataframe Karşılıkları-3 (UPDATE, DELETE)

SQL Sorgularının Python Pandas Dataframe Karşılıkları-3 (UPDATE, DELETE)

Merhaba serimizin üçüncü yazısında SQL update ve delete operasyonlarını pandas ile nasıl yaparız onu göreceğiz. Veri kaynaklarına ilk yazımızdan ulaşabilirsiniz.

1. UPDATE

Verimizde bazı satırlarda meslek bilgisi boştu gelin onu güncelleyerek dolduralım. SQL UPDATE operasyonu tehlikeli bir iştir. Şayet filtreyi iyi ayarlamaz iseniz istenmeyen yerleri istenmeyen bilgilerle değiştirirsiniz. O yüzden ben UPDATE sorgusunda kullanacağım filtreyi önce SELECT ile deniyorum ve sonra UPDATE kullanıyorum.

select * from simple_data
where meslek = ''
siranoisimyasmesleksehiraylik_gelir
5Yasemin23Bursa4800
15Şehmuz41Ankara8700

Gördüğümüz gibi kullandığımız filtre (WHERE cümleciği) doğru çalıştı. Artık UPDATE yapabiliriz.

update simple_data set meslek = 'Saraç'
where meslek = ''

Güncellemeyi kontrol için tekrar SELECT sorgusunu çalıştıralım

select * from simple_data
where meslek = 'Saraç'
siranoisimyasmesleksehiraylik_gelir
5Yasemin23SaraçBursa4800
15Şehmuz41SaraçAnkara8700

Pandas ile de önce select ile filtreyi kontrol edelim.

df.loc[df['meslek'].isna()].head()
siranoisimyasmesleksehiraylik_gelir
45Yasemin23NaNBursa4800
1415Şehmuz41NaNAnkara8700

Şimdi güncelleyelim

df.loc[df['meslek'].isna(), 'meslek'] = 'Saraç'

Güncellemeyi kontroledelim

df.loc[df['meslek'] == 'Saraç'].head()
siranoisimyasmesleksehiraylik_gelir
45Yasemin23SaraçBursa4800
1415Şehmuz41SaraçAnkara8700

Güncelleme başarılı.

2. DELETE

Delete operasyonuna örnek olarak ismi Gençay olanları silelim.

delete from simple_data
where isim = 'Gençay'

Kontrol edelim

select * from simple_data
where isim = 'Gençay'
limit 5
siranoisimyasmesleksehiraylik_gelir

Silme işlemi başarılı.

Silmeden önce Pandas ile de kontrol edelim filtre doğru çalışıyor mu?

df.loc[df['isim'] == 'Gençay'].head()
siranoisimyasmesleksehiraylik_gelir
1516Gençay46BerberAnkara8800
1616Gençay46BerberAnkara8800

Şimdi silelim

df = df.loc[df['isim'] != 'Gençay']

Kontrol edelim

df.loc[df['isim'] == 'Gençay'].head()

sirano
isimyasmesleksehiraylik_gelir

Silme işlemi başarılı. Burada bir nokta dikkatinizi çekmiştir. Aslında silme yapmadık. Sadece isim sütununda “Gençay” geçenleri filtreleyip kalanları dataframe’in kendisine tekrar atadık.

Hakkında Erkan ŞİRİN

2014'ten beri hem akademik hem de sektörde pratik anlamda büyük veri ve veri bilimi ile ilgili çalışmalar yürütmektedir. Halihazırda İmpektra Bilişim A.Ş.'de büyük veri yöneticisi olarak çalışmakta olup aynı zamanda Gazi Üniversitesi Yönetim Bilişim Sistemleri doktora öğrencisidir. Büyük veri ve veri bilimi ile ilgili birçok kurum ve şirkete eğitimler vermekte ve projeler icra etmektedir. Çalışma alanları: büyük veri platformlarının kurulum ve yönetimi, büyük veri üzerinde makine öğrenmesi, olağan dışılık tespiti, sahtecilik tespiti, veri hazırlama sürecidir.

GÖZ ATMAK İSTEYEBİLİRSİNİZ

Python Pandas Dataframe’i Elasticsearch’e Yazmak

Merhabalar bu yazımızda Python Pandas Dataframe verisini Python kullanarak Elasticsearch’e yazacağız. Şükür ki Python çok …

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir