<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Rüfət İsmayılov on Medium]]></title>
        <description><![CDATA[Stories by Rüfət İsmayılov on Medium]]></description>
        <link>https://medium.com/@dataruf?source=rss-cd00cb2e9543------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*aMdEYtlQ_SvN35_3MCld1A.png</url>
            <title>Stories by Rüfət İsmayılov on Medium</title>
            <link>https://medium.com/@dataruf?source=rss-cd00cb2e9543------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 04 Jul 2026 06:11:25 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@dataruf/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[SQL-də “Big six"]]></title>
            <link>https://dataruf.medium.com/sql-d%C9%99-big-six-1ea6b9092d3a?source=rss-cd00cb2e9543------2</link>
            <guid isPermaLink="false">https://medium.com/p/1ea6b9092d3a</guid>
            <category><![CDATA[big-6]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[sql-server]]></category>
            <category><![CDATA[sql]]></category>
            <category><![CDATA[data-analysis]]></category>
            <dc:creator><![CDATA[Rüfət İsmayılov]]></dc:creator>
            <pubDate>Mon, 06 Apr 2026 09:30:44 GMT</pubDate>
            <atom:updated>2026-04-06T09:30:44.737Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gMri6AwKUbZ8IAH5x9QmOQ.png" /></figure><p>SQL hazırda data analitiklər üçün əvəzolunmaz alətlərdən biri hətta birincisidir. Təxminən son 2–3 ilə qədər Excel-in hegemonluq etdiyi data sahəsi üzrə əmək bazarında son dövrlər dataların kifayət qədər çoxalması SQL-in ön plana çıxmasına səbəb olub. SQL bir növ database ilə danışıq dilidir. Nəyi, hansı formada istədyimizi ondan soruşuruq və uyğun cavabı bizə təqdim edir. Həm sintaksisi həmdə istifadə olunan dilin nisbətən sadə və anlaşıqlı olması onu daha da güclü analitik alətə çevirir. Hazırda isə analitik üçün SQL bilmək seçim yox zəruriyyətdir. Lakin SQL developer və DataBase Administrator (bundan sonra DB admin) səviyyəsində SQL biliyi analitik üçün üstünlük ola bilər lakin vacib deyil. Bəs analitik səviyyəsində SQL bilikləri hansı mövzuları əhatə edir? Yazıda bu mövzudan danışacayıq.</p><blockquote>BIG 6 anlayışı</blockquote><p>SQL-də də digər toolar kimi iş həyatında hər gün bütün funksiyalarından tam istifadə olunmur. DB adminlərin daimi istifadə etdiyi xüsusiyyətləri ayrıdır, analitiklərin ayrıdır və s.<br>Analitiklərin daimi olaraq sorğu yazarkən işlətdiyi Top 6 funksiyalar BIG 6 başlığı altında toplanıb. Bunlar SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY-dır. Hər birinə qısa olaraq nəzər salaq.</p><h4>SELECT -<a href="https://youtu.be/4DMTn-9JqYE?si=c0NuXnuBxB0-tW2N&amp;t=45">Səni istərəm…</a></h4><p>Select əmrinin köməyi ilə qarışıq cədvəllərdən (bəzən 30+ stün) bizə lazım olan, bir növ “seçdiyimiz” stün vəya stünları çəkib gətiririk. “Big 6” 100000 bənzətsək Select burdakı 1 olar. Yəni Select-siz digərləri bir heçdir. Stünlar üzərində text, riyazi əsaslı əməliyyatlar həmçinin adlandırmalar və s. hamısı Select əmrinin daxilində yerinə yetirilir. Bəs 30 stünun hamısı bizə lazım olsa nə edək? Bir-bir ad yazaq? Cavab Xeyr! SQL-də * işarəsi ilə bütün sütunları gətirmək mümkündür.</p><pre>-- Employees cədvəlindən bütün cədvəli gətirən kod:<br>Select *<br>  From employees;<br>-- Tabel no, adı, maaşı gətirən kod:<br>Select employee_id,<br>       first_name,<br>       salary<br>  From employees;</pre><h4>FROM -<a href="https://youtu.be/fw1kMwXsKMU?si=wZcXN_2x_sYqSb3B&amp;t=9">De hardasan…</a></h4><p>Sorğuda hnə istədyimiz əlbəttə önəmlidir, lakin hardan, hansı cədvəldən gətirmək istəyimiz də doğru nəticə üçün önəmlidir. Bəzən bir stün adı ümumi DB-də bir neçə fərqlə cədvəldə ola bilər. Bu zaman köməyimizə gələn clause FROM-dur. From ilə məlumatı hansı cədvəldən gəlməsini təmin edirik. Yuxarıdakı nümunədə fromun işlənməsinə də baxa bilərik. Tabel no, adı və əməkhaqqını From ilə employees cədvəlindən gətirmişdik. Select və from demək olar ki SQL-in özəyini təşkil edir.</p><h4>WHERE -Süzgəcdən keçirmək.</h4><p>Sütun əsaslı filterləməni Select əmri daxilində etmişdik. Lakin bəzən sütun daxilində bütün sətrlər yox bizim üçün lazım olanların qalmasını istəyirik. Bu zaman da Where əmrindən istifadə edirik. Əmr daxilində bir şərt veririk və şərti ödəyən məlumatlar filterdən keçir uyğun olmayanlar isə qalır. Nümunə üzərindən baxaq.</p><pre>-- Maaşı 8000-dən yuxarı bütün əməkdaşların tabel no və adı.<br>Select employee_id,<br>       first_name<br>  from employees<br> where salary &gt; 8000;</pre><h4>Group BY -Qruplara ayırmaq.</h4><p>Müəyyən keyslərdə isə dataları hansısa başlıq altında qruplaşdırmaq lazım gəlir. Bu ssenarilərdə isə Group By gücündən istifadə edirik. Group by əsasən aggregation funksiyalarla işlənir (sum, min, max, count, avg). Nümunəyə baxaq.</p><pre>-- Departamentlər üzrə ortalama əməkhaqqını qaytaran sorğu<br>select department_id, avg(salary)<br>  from employees<br>group by department_id;</pre><h4>Having -Qruplara filter tətbiq etmək.</h4><p>Yuxarıda Where əmri ilə sorğumuza şərt tətbiq etmişdik. Lakin Group By ifadəsi ilə hesablanan aqqreqat funksiyalarına eynisini tətbiq etmək olmur. Bunun üçün Having clause-u yardımçı olur. Having əmri ilə hesabladığımız ortalama, toplam, maks və ya minimum-lara şərt tətbiq edə bilirik. Nümunə ilə daha aydın olacaq.</p><pre>-- Departamentlər üzrə ortalama əməkhaqqı 6000dən yuxarı olanları<br>-- qaytaran sorğu:<br>select department_id, avg(salary)<br>  from employees<br>group by department_id<br>having avg(salary) &gt; 6000;</pre><h4>Order by -Boy sırasına görə düzlən…</h4><p>Big 6-dan ilk 5-i barədə öyrəndik. Lakin hər bir sorğu random sıralama ilə bizə output qatarır. Nəticəni hansısa sıra ardıcıllığı ilə görmək istəsək bu zaman Order By istifadə etmək məcburdur. İki istiqamətdə sıralama gedir- Azdan -çoxa, Çoxdan-aza. ASC- ascending azdan-çoxa. DESC-descending çoxdan-aza sıralamanı təmin edir. Bu köməkçi əmrlər Order by içərisinə daxil edilmədikdə defolt olaraq sıralama azdan-çoxa doğru olacaqdır. Az-Çox məsələsi həmçinin simvol olaraq A-Z, zaman olaraq Yeni-Köhnə olur (sütundakı data tipindən aslı olaraq). Nümunəyə baxaq.</p><pre>-- 10 nömrəli departmanet xaric digər departamentlər üzrə ortalama əməkhaqqı<br>-- 6000dən yuxarı olanları qaytaran sorğu (Salary uzre siralama DESC):<br>select department_id, avg(salary)<br>  from employees<br> where department_id&lt;&gt;10<br>group by department_id<br>having avg(salary) &gt; 6000<br>Order by avg(salary) desc;</pre><p>Bu məqalədə SQL-də ən çox istifadə olunan əmrlərə (Big6) baxdıq. Ətraflı olaraq isə Youtube kanalımda paylaşdığım videolardan baxa bilərsiniz.</p><p><a href="https://youtu.be/M5tQtM7j_kw?si=t7UrsCoDTtVrzDrv">https://youtu.be/M5tQtM7j_kw?si=t7UrsCoDTtVrzDrv</a></p><p>Clap, şərh yazmaq və paylaşmaqla dəstək ola bilərsiniz.</p><p>Oxuduğunuz üçün təşəkkürlər.</p><blockquote><a href="https://www.linkedin.com/in/dataruf/"><em>linkedin hesabım</em></a></blockquote><blockquote><a href="https://www.instagram.com/dataruf/"><em>instagram hesabım</em></a></blockquote><blockquote>Y<a href="https://www.youtube.com/@dataruf"><em>outube hesabım</em></a></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1ea6b9092d3a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Power Query ilə Excel və Power BI-da Data Təmizliyi]]></title>
            <link>https://dataruf.medium.com/power-query-il%C9%99-excel-v%C9%99-power-bi-da-data-t%C9%99mizliyi-c467d3238c43?source=rss-cd00cb2e9543------2</link>
            <guid isPermaLink="false">https://medium.com/p/c467d3238c43</guid>
            <category><![CDATA[power-bi]]></category>
            <category><![CDATA[data-analysis]]></category>
            <category><![CDATA[excel]]></category>
            <category><![CDATA[data-cleaning]]></category>
            <category><![CDATA[power-query]]></category>
            <dc:creator><![CDATA[Rüfət İsmayılov]]></dc:creator>
            <pubDate>Sun, 24 Aug 2025 12:25:46 GMT</pubDate>
            <atom:updated>2025-08-24T12:25:46.799Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*h7rm5EkoSxeFkl1auVCBGA.jpeg" /></figure><p>Data analizi, maşın öyrənməsi, data elmi və digər uyğun sahələrin əsas predmetini datalar yəni məlumatlar təşkil edir. Bəzən bizim əlimizdə terabaytlarla data ola bilər lakin bu datalar lazımsız və analiz üçün yararlı deyilsə və yaxud da toplanmasında səhvlərə yol verilibsə bu zaman işə yaramayan məlumat toplusuna sahib olmuş sayılırıq. <br>Data toplanması və saxlanması kimi əməliyyatlar data mühəndisləri tərəfindən avtomatlaşdırılır. Bu səbəbdən bir çox hallarda son mərhələdə analiz üçün təqdim olunan datalar əsasən çirkli adlandırdığımız datanın ilkin-“raw” (xam) halında olur. Bu tip datalarla birbaşa olaraq hansısa analizlər aparıb nəticələr əldə etmək praktiki olaraq mümkün olmur.</p><p>Analitika sahəsində, verilənlərin keyfiyyəti nəticələrin dəqiqliyinə birbaşa təsir edir. Data təmizləmə (Data Cleaning) bu məqsədlə, analiz öncəsi datanın keyfiyyətini artırmaq üçün aparılan vacib bir prosesdir. Bu proses təkrarlanan, natamam, uyğun olmayan və ya səhv məlumatları aradan qaldırır, məlumatları analiz üçün istifadəyə yararlı hala gətirir. Bu zaman null, təkrarlanan dəyərlər üzərində data manipuliyasiya aparılır, səhv yazılışlar, lazımsız məlumatlar təmizlənir. Daha irəli səviyyədə outlierslər tapılır və kənarlaşdırılır. Qeyd etmədiyimiz daha bir neçə belə addım sonrası əlimizdəki data analiz üçün hazır vəziyyət gəlmiş olur.</p><p>Təmizlənmə prosesi məlumat ölçüsündən aslı olaraq fərqli alətlər vasitəsi ilə aparıla bilər. Məsələn daha kiçik həcmli datalarla işləyərkən sadə Excel formulaları ilə prosesi tamamlamaq mümkün olduğu halda, bəzi iri həcmli və qarmaşıq datalarla işləyərkən 2–3 və daha çox addımlı təmizləmə prosesi aparıla bilər. Bu zaman Python, SQL kimi alətlərdən yararlana bilirik. Bəzi hallarda Excel daxilində bu prosesi tamamlamaq vacib olur. Məsələn datamızı təmizləyib sonra Pivot cədvəllərlə rahatlıqla analizlər apara bilərik. Bu zaman Excelin güclü silahlarından biri olan Power Query köməyimizə çatır. Power Query vasitəsilə biz milyonlarla sətrlik böyük həcmli datalar üzərində manipulyasiya və tansformasiya proseslərini apara bilərik.</p><p>Addım-addım Power Query-də data təmizlənməsi prosesinə qısa nəzər yetirək.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UOjmKPI2bciUtZ9NRPLDVg.png" /></figure><p>Qeyd etmişdik ki, Excelin güclü alətlərindən biri də Power Query-dir. Power Query həmçinin Power BI-da datanın daxil edilməsi, transformasiyası kimi proseslərin aparılmasında vacib rol oynayır. Datalardan vizuallar, ölçümlər və hesabatlar hazırlamamışdan öncə Power Query ilə emal edirik və daha sonra təmizlənmiş bu datadan analiz üçün istifade edirik.</p><p>İndi isə qısa bir nümunə üzərindən baxaq.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/852/1*w0RdcqPEKanRGdwhaxCybw.png" /><figcaption>Əlimizdəki çirkli datanın görüntüsü.</figcaption></figure><p>Bu datada formatlarda, yazılarda hədda stün quruluşunda bir çox səhvliklər var. Bundan əlavə çoxlu boş xanalar da diqqətimizi çəkir. Bunun üçün bu çirkli datanı təmizləyərək analizə yararlı data əldə etməyə çalışırıq.</p><p>İstədyimiz təmiz datanın quruluşu aşağıdakı şəkildə göstərilib.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/968/1*k4JANsHm-rJWS9lyVQN3rQ.png" /><figcaption>Təmizlənmiş data (cədvəl formasında)</figcaption></figure><p>Data təmizlənməsi uzun addımlardan ibarət olduğu üçün video halında bu prosesi sizlər üçün hazırlamışam. İstəyənlər qeyd edcəyim videonu youtube üzərindən izləyə bilər. Xoş izləmələr.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F4G7WoPY0kCs%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D4G7WoPY0kCs&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F4G7WoPY0kCs%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/0cfce1861211e85e3f077f52f88b3920/href">https://medium.com/media/0cfce1861211e85e3f077f52f88b3920/href</a></iframe><h3>Bu günlük bu qədər. Aşağıdakı platformalarda məni izləməyi unutmayın.</h3><blockquote><a href="https://www.linkedin.com/in/dataruf/"><em>linkedin hesabım</em></a></blockquote><blockquote><a href="https://www.youtube.com/@dataruf"><em>youtube hesabım</em></a></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c467d3238c43" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Kimdi bu Bayes?]]></title>
            <link>https://dataruf.medium.com/kim-ulan-bu-bayes-eee5c453a949?source=rss-cd00cb2e9543------2</link>
            <guid isPermaLink="false">https://medium.com/p/eee5c453a949</guid>
            <category><![CDATA[azerbaijan]]></category>
            <category><![CDATA[statistika]]></category>
            <category><![CDATA[bayes-theorem]]></category>
            <category><![CDATA[bayes-teoremi]]></category>
            <category><![CDATA[data-science]]></category>
            <dc:creator><![CDATA[Rüfət İsmayılov]]></dc:creator>
            <pubDate>Sun, 11 May 2025 08:38:27 GMT</pubDate>
            <atom:updated>2025-05-26T03:24:23.836Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*H2Et1KDsdQ0Fjzzb-OKL2g.png" /><figcaption>Bayes teoremi</figcaption></figure><p>Az qala hər saniyə “ton”-larla datanın yarandığı bir dövrdə yaşayırıq. Belə bir zamanda data əsaslı qərarların önəmini artıq iş dünyası anlayıb lakin əldə olunan nəticələr bəzən bizi səhv yönləndirə bilər. Doğru məlumatın əldə olunmasında isə əvəzsiz rolu olan teoremlərdən biri hətta birincisi Bayes teoremidir. Bayeslə statistika, analitika, NLP, maşın öyrənməsi hətta Süni zəka sistemlərində də rastlaşırıq (dolayı yolla da olsa).</p><h3>Bayes özü kimdir?</h3><p>Tomas Bayes — İngiltərə doğumlu alim. Alim desəm də adamın məşğul olmadığı sahə qalmayıb demək olar. Keşiş (ilahiyyatçı) olaraq da çalışıb bir dövr. Lakin hər kəs onun statistika, riyaziyyat elminə töhfələrindən dolayı tanıyır. <strong>Bayes teoremi</strong> (və ya <strong>Bayes düsturu</strong>) — statistik cəhətdən bir-birindən asılı olan başqa bir hadisənin baş verməsi şərti ilə hadisənin baş vermə ehtimalını təyin etməyə imkan verən elementar ehtimal nəzəriyyəsinin əsas teoremlərindən aşağı. Başqa sözlə, Bayes düsturundan istifadə edərək həm əvvəllər məlum olan məlumatları, həm də yeni müşahidə məlumatlarını nəzərə alaraq hadisənin baş vermə ehtimalını aydınlaşdıra bilərsiniz. Bayes düsturu ehtimal nəzəriyyəsinin əsas aksiomlarından, xüsusən də şərti ehtimaldan götürülə bilər. Bayes teoreminin özəlliyi ondan ibarətdir ki, onun praktiki tətbiqi çoxlu sayda hesablamalar və hesablamalar tələb edir, ona görə də Bayes təxminləri yalnız kompüter və şəbəkə texnologiyalarında inqilabdan sonra fəal şəkildə istifadə olunmağa başladı. Bu gün o, maşın öyrənməsi və <a href="https://az.wikipedia.org/wiki/S%C3%BCni_intellekt">süni intellekt</a> texnologiyalarında fəal şəkildə istifadə olunur.</p><p><strong>Bayes düsturu</strong>:</p><p>P(A∣B)=P(B∣A)P(A)P(B)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/198/0*ko74OCFgyysCtnED" /></figure><p>P(A)- <em>A</em> hipotezinin a priori ehtimalı;<br>P(A∣B)- <em>A</em> fərziyyəsinin <em>B</em> hadisəsinin baş vermə ehtimalı (posterior ehtimal);<br>P(B∣A)- <em>A</em> fərziyyəsi doğrudursa, <em>B</em> hadisəsinin baş vermə ehtimalı;<br>P(B)- <em>B</em> hadisəsinin baş verməsinin ümumi ehtimalıdır.</p><p>Psixoloji təcrübələr göstərir ki, insanlar çox vaxt bəzi şəxsi təcrübəyə (posterior ehtimal) əsaslanaraq hadisənin real (riyazi cəhətdən düzgün) ehtimalını səhv qiymətləndirirlər, çünki onlar fərziyyənin çox ehtimalına (aprior ehtimal) məhəl qoymurlar. Buna görə də, Bayesin düsturundan düzgün nəticə intuitiv olaraq gözləniləndən çox fərqli ola bilər.</p><blockquote>Ser Harold Ceffris deyir ki, Bayes teoremi “ehtimal üçün Pifaqor teoreminin həndəsə üçün olduğu kimidir”</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=eee5c453a949" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Statistical Analysis of Hospital Admissions in Azerbaijani Youth [Excel, Power Query, Power BI]]]></title>
            <link>https://dataruf.medium.com/statistical-analysis-of-hospital-admissions-in-azerbaijani-youth-fc0d7e24187b?source=rss-cd00cb2e9543------2</link>
            <guid isPermaLink="false">https://medium.com/p/fc0d7e24187b</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[health-trends]]></category>
            <category><![CDATA[healthcare-insight]]></category>
            <category><![CDATA[data]]></category>
            <category><![CDATA[data-analysis]]></category>
            <dc:creator><![CDATA[Rüfət İsmayılov]]></dc:creator>
            <pubDate>Fri, 21 Feb 2025 13:41:08 GMT</pubDate>
            <atom:updated>2025-08-03T09:01:18.098Z</atom:updated>
            <content:encoded><![CDATA[<h4>2007–2023 Years (Ages 14–29)</h4><h4>It all started with a sneeze…</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/366/1*4uF467KaIR8SYKAVNKMCBA.gif" /><figcaption>If sneezing was a championship…</figcaption></figure><p>Then a cough… Then an entire day spent at home feeling feverish. As I lay in bed, wondering whether I should visit a doctor, a thought struck me — <strong><em>how often do young Azerbaijanis like me end up in hospitals?</em> <em>What are the most common reasons for their admissions?</em></strong> <br><strong>That’s how this analysis was born.</strong></p><p>Exploring <a href="http://www.stat.gov.az"><strong>The State Statistical Committee of the Republic of Azerbaijan</strong></a><strong> </strong>website, I found dataset which about 14–29 Years Azerbaijani young peoples hospital admissions and first diagnosis.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*aV4Um5uauEdNaAe8gslnuw.gif" /><figcaption>data structure in base.</figcaption></figure><p>Our data is “.xls” format [Excel]. But our <strong>data is not clean</strong> and <strong>does not fit our analysis</strong>. So I import data to Excel &gt;&gt;&gt; Power Query. (It also can made only Power BI but I practised Query knowledge also). In Power Query I check complete data, which I need and which I don`t need. Also saw data format is pivot format. I have column which name <strong>Diagnosis</strong>-categorical data and in here 18 different variables. Represents first diagnosis name when person visited hospital. Then other columns “2007”, “2008” … “2023&quot; represents <strong>Years</strong>. And in that table where Years and Diagnos name crossed there is numeric data which shows count of young peoples admission.</p><p>Transformation process started with deleting unnecessary rows which saved total values or null cells inside. We change our <strong>wide</strong>-form data to <strong>long</strong>-form data style. This means we kept only 3 columns. Like unpivot our data. Last three columns are : “Diagnosis”, “Year” and “Count of addmission”. After cleaning and transformation processes our result table was ready for import any visualization tool.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*H2nUfXp6P5VB5M9gGZwolQ.gif" /><figcaption>result table format.</figcaption></figure><p>Last step is very clear. Just importing result data to Power BI and then choosing best chart for this case. I choose ribbon chart. Because it can show total admissions per years. Same time we can see bar chart and time series(years). Also we show how changed each diagnosis by years. (-/+)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*pD2BSD6PVuBnjtJTdg0Olw.gif" /><figcaption>Ribbon chart in Power BI.</figcaption></figure><h3>Key Findings from the Data (Visual):</h3><ol><li><strong>Respiratory diseases</strong> are the <strong>leading</strong> cause of hospital admissions among Azerbaijani youth. Over the last <strong>17 years (2007–2023)</strong>, this trend has remained <strong>unchanged</strong>.</li></ol><p>2. The next <strong>five most common diagnoses</strong> have stayed relatively consistent, with high hospital admissions for:</p><ul><li><strong>Diseases of the digestive system</strong></li><li><strong>Diseases of the genitourinary system</strong></li><li><strong>Some infectious and parasitic diseases</strong></li><li><strong>Injuries, poisonings, and external causes</strong></li><li><strong>Pregnancy, childbirth, and postpartum conditions</strong> (although significantly declining)</li></ul><p>3.<strong> The Pandemic’s Impact on Birth Trends:</strong></p><ul><li>Hospital admissions for pregnancy and childbirth <strong>dropped by 35%</strong> during the pandemic — a significant decline.</li><li>One major reason? <strong>Wedding restrictions</strong> in Azerbaijan during lockdowns.</li><li>However, even after 2020, this trend <strong>did not fully recover</strong>. What used to be the <strong>2nd or 3rd most common cause of hospitalization</strong> is now in <strong>4th or 5th place</strong>.</li><li>This aligns with global trends — <strong>fewer young families are having children</strong>, and <strong>the average marriage age is increasing (beyond 30s).</strong></li></ul><p>4.<strong> The Rise of Digestive System Diseases in Young People:</strong></p><ul><li>Since the pandemic <strong>digestive diseases have surged.</strong></li><li>A major factor? <strong>Changes in nutrition.</strong> With post-pandemic social life resuming, <strong>fast food consumption has increased significantly.</strong></li><li>Data suggests that people have been eating out more, choosing <strong>highly processed, low-nutrient foods</strong>, which could be fueling these health issues.</li></ul><h3>Conclusion: What Can We Learn?</h3><p>This data provides <strong>valuable insights into the health of Azerbaijani youth.</strong> But imagine what we could discover with <strong>more detailed data</strong> — gender, social status, specific age breakdowns. Such analysis could help policymakers and healthcare professionals create better preventive measures.</p><p>But what about individuals? <strong>You have control over your health.</strong></p><ul><li><strong>Respiratory diseases:</strong> Avoid harmful habits like <strong>cigarettes, excessive alcohol, and drugs</strong>, which often start between <strong>ages 14–18</strong>.</li><li><strong>Digestive system diseases:</strong> A <strong>balanced diet</strong> matters. Reduce <strong>fast food, excessive carbs, and unhealthy fats</strong> — opt for more <strong>greens, protein-rich foods, and home-cooked meals</strong>.</li><li><strong>Genitourinary diseases:</strong> Cut down on <strong>sugary, carbonated, and energy drinks</strong>. Drinking <strong>pure water</strong> can make a big difference in preventing kidney and urinary issues.</li><li><strong>Overall health:</strong> Don’t forget <strong>daily movement and exercise.</strong> Even <strong>10 minutes of morning stretching</strong> can improve long-term well-being.</li></ul><p>As we explore these statistics, one thing becomes clear: <strong>health is more than just numbers.</strong><br>Each hospital visit represents a <strong>real person, a real story, and a real challenge.</strong><br>By understanding these trends, we can make <strong>smarter choices, prioritize preventive care, and work toward a healthier future.</strong></p><p>So, as you finish reading this — <strong>take a deep breath, stretch, and commit to taking care of yourself.</strong></p><h3>Stay informed. Stay healthy. Take care!</h3><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fc0d7e24187b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Data analizi üçün Python təməlləri! Gün 6.]]></title>
            <link>https://dataruf.medium.com/data-analizi-%C3%BC%C3%A7%C3%BCn-python-t%C9%99m%C9%99ll%C9%99ri-g%C3%BCn-6-7534f442e3f7?source=rss-cd00cb2e9543------2</link>
            <guid isPermaLink="false">https://medium.com/p/7534f442e3f7</guid>
            <category><![CDATA[data-analysis]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[azerbaijan]]></category>
            <category><![CDATA[loops-in-python]]></category>
            <dc:creator><![CDATA[Rüfət İsmayılov]]></dc:creator>
            <pubDate>Fri, 22 Nov 2024 15:19:21 GMT</pubDate>
            <atom:updated>2024-11-22T15:19:21.383Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*I2SlgWYHXeQbCxnR56n-ew.png" /></figure><p>Ötən yazılarda Python haqqında ilkin biliklər öyrəndik. Ümumi olaraq mövzulara nəzər salsaq:<br>Python və orada yazdığımız kodları “run” etmək üçün IDE-lər, data tipləri- ədədlər(tam və onluq kəsr), stringlər, listlər, tuple-lar, sözlüklər (dictionary), set-lər (çoxluqlar) strukturu və onlar üzərində apara biləcəyimiz əməliyyatlar barədə məlumatlar aldıq. Bu dərsdən etibarən daha çox “kolları sıvama” modunda olacayıq. Bu anlamda praktiki olaraq təkrar etmək, kodları yenə-yenidən yazmaq sizin kodlama bacarığınızı daha da inkşaf etdirəcək.</p><h3>Loops and conditionals →Şərtlər və döngülər.</h3><h4>Loops-Döngülər</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JzWhzY7gE9kWzAUd70V-rA.png" /></figure><p>Loop-lar bizim dilimizdə desək döngülər bizə əksər əməliyyatlar zamanı çox kömək edir. Belə bir situasiyaya baxaq. <br><em>10 sətir “Mən Python öyrənirəm.” yazmaq.<br></em>Bu zaman ya copy-paste (ən sevdiyim 😃) ya da copy-paste ağla gəlir. Hər halda heç kəs 10 dəfə <em>“Mən Python öyrənirəm.” </em>yazmaz.<br><em>Yazmaq ağlınızdan keçdisə blogu burda dayandırıb yeni sahəyə başlamanızı şiddətlə tövsiyyə edirəm.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/940/1*BbGeuX-3h4fYMVBcwGpRIQ.png" /></figure><p>Gördüyünüz kimi burada uzun kod sətrləri yazmalı olduq. Bəs bunun asan yolu yoxdur?<br>-Əlbəttə var.<br>Belə bir anda köməyimizə döngülər daha kobud dildə desək looplar köməyiizə çatır.</p><p><strong>Oooppss!<br></strong>Looplar köməyimizə çatır lakin ayrılıqda hər zaman işimizi görməyə yardımcı olmurlar təəssüf ki. Bu baxımdan döngümüzün işləməyi üçün bizə şərt-condition da lazım olur. Bu zaman isə ötən yazılarda öyrəndiyimiz conditionals(if, elif, else) yardımçı olacaq.</p><p>P.S Əslində bizə lazım olan True və ya False (bool) ifadələrdir (əsas da False). Əks halda bizim döngümüz heç bir zaman dayanmayacaq. Nəticədə donma ilişmə və s. qaçınılmazdır.</p><p>Ingredient-lərimizin adlarını öyrəndik: Loop, condition və sonlanması üçün False.<br>O zaman praktiki olaraq bunları sınaqdan keçirmək vaxtı gəldi daha doğrusu “döngü loop-ası” bişirmək zamanı.</p><p>İki loop vardır For və While döngüsü. Ümumi baxımdan demək olarki eyni işi görürlər lakin bəzi nöqtələrdə hər birindən ayrıca istifadə edilir. Biz hər ikisinin dadına baxacayıq və kimin tərəfində olduğumuzu özümüz seçəcəyik.</p><h4>For döngüsü</h4><figure><img alt="https://www.geeksforgeeks.org/" src="https://cdn-images-1.medium.com/max/648/1*DJnsw-YbSIQnzwZryi9B7w.png" /><figcaption>geeksforgeeks</figcaption></figure><p>Şərtimizi yada salaq: <em>10 sətir “Mən Python öyrənirəm.” </em>yazmaq<em>.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/723/1*Rd1dlI3deMBIUqCavduLdg.png" /></figure><p>Cəmisi 2+1 sətir kodla bu məsələni həll etdik.</p><p>Kodumuzun qısa izahı:</p><p>for bildiyimiz loop, i isə özümüzdən verdiyimiz random dəyərdi. istənilən hərf edə bilərsiz. Əsas məsələ pythona kodu izah etməkdir. i in range(1,11) dedikdə yəni 1 və 11 arasında olan hər bir ədəd üçün<em> (11 yazdıq çünki range(a,b) a daxil olur lakin b yox. buna görü range verəndə maksimuma +1 əlavə edirik). </em>Sonra dedik çap et sonda isə i = i + 1 anlamını daşıyan i += 1 yazdıq. Kodun işləmə ardıcıllığı belədir. Range 1-dən başlayır. 1 range(1,11) daxildir deye keçir print edir daha sonra üzərinə 1 gəlir. Bu dəfə i = 2 olur onu yoxlayır yenə çap yenə +1 ta ki 10-cuya qədər. 10 aralığa daxil olduğu üçün onu çap edir üzərinə 1 əlavə edir. Daha sonra təkrar başa qayıdarkən 11-in aralığa daxil olmadığını gördüyü üçün kodu sonlandırır. Nəticədə 10 dəfə <em>“Mən Python öyrənirəm.” </em>yazısı çapa verilmiş olur.</p><h4>While döngüsü.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/667/1*wm_tvrRGNiBf-BLqP5_A-g.png" /><figcaption>geeksforgeeks</figcaption></figure><p>İndi isə while-a nəzər salaq. Eyni ilə for prinspi ilə çalışır lakin burada aralıq (list və s.) yox konkret olaraq tam ədədlər ilə işləmək olar. Praktikada daha aydın olacaq.</p><p>Eyni şərtimizi dəyişmədən while döngüsündə həll edək.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/762/1*gnDblafHSh42ZHjxK5tNcw.png" /></figure><p>Kodun işləmə ardıcıllığı eynilə for-da olduğu kimidir. Lakin burada əlavələrə fikir verək.<br>1. İlk olaraq i = 0 dəyişənini yaratdıq. Buna köməkçi dəyişən də deyə bilərik. Başlanğıc dəyər müəyyən etdik və 0 dan başladı.<br>2. Daha sonrakı şərtdə “i 10-dan kiçik və bərabər olduğu müddətdə” əmrini vermiş olduq python dilində.<br>3. Sonra bu müddətdə hansı əmri yerinə yetirməsini dedik (print() hissəsi). Sonda yenə i += 1 ilə hər şərt ödəndiyi müddətdə +1 əlavə etməsini dedik. Başqa sözlə desək i dəyərimizin 10-dan kiçik və 10-a bərabər olduğu müddətdə əmri yerinə yetirməsini tapşırdıq. Yəni 11ə keçdikdə dayanmasını əmr etdik. Bir sözlə işləməsi üçün şərt verdik, şərt ödənirsə nə etməli olduğunu dedik sonda isə harda dayanmalı olduğunu bildirdik.</p><p>Döngülərin daxilində bir sıra fərqli əməliyyatlar aparmaq olar əsas da condition-lardan istifadə etmək olar. Əgər bunun haqqında daha geniş dərsin (6.1 Extended) gəlməsini istəyən olsa şərh olaraq bildirə bilər. Dgər halda yeni dərslərimizə bitirdiyimiz yerdən davam edəcəyik inşallah.</p><h3>Bu günlük bu qədər. Növbəti gündə görüşənədək. Aşağıdakı platformalarda məni izləməyi unutmayın.</h3><blockquote><a href="https://www.linkedin.com/in/dataruf/"><em>linkedin hesabım</em></a></blockquote><blockquote><a href="https://www.instagram.com/dataruf/"><em>instagram hesabım</em></a></blockquote><blockquote><a href="https://www.youtube.com/@dataruf"><em>youtube hesabım</em></a></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7534f442e3f7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Data analizi üçün Python təməlləri! Gün 5.]]></title>
            <link>https://dataruf.medium.com/data-analizi-%C3%BC%C3%A7%C3%BCn-python-t%C9%99m%C9%99ll%C9%99ri-g%C3%BCn-5-974cb3a23f58?source=rss-cd00cb2e9543------2</link>
            <guid isPermaLink="false">https://medium.com/p/974cb3a23f58</guid>
            <category><![CDATA[python]]></category>
            <category><![CDATA[azərbaycan]]></category>
            <category><![CDATA[azerbaijan]]></category>
            <category><![CDATA[data-analysis]]></category>
            <category><![CDATA[azərbaycanca]]></category>
            <dc:creator><![CDATA[Rüfət İsmayılov]]></dc:creator>
            <pubDate>Mon, 04 Nov 2024 04:10:08 GMT</pubDate>
            <atom:updated>2024-11-04T04:10:08.234Z</atom:updated>
            <content:encoded><![CDATA[<p>Ötən yazımızda indeks və indeks məntiqindən, string və stringlər üzərində müəyyən əməliyyatlara nəzər saldıq.<br>İndi isə yeni məlumatlarla tanış olacağıq.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*VC5Kxu85mAItqQDvq-w5Gg.png" /></figure><p>Pythonda Collection adlanan ifadə vardır ki, hərfi anlamıyla bir növ yığın, toplu kimi məna daşıyır. Collection-a data saxlayan nəsnə olaraq da baxmaq olar.<br>Collection-lar 2 qrupa ayrılır:<em> 1)Mutable, 2)Immutable.</em><br><em>Mutable</em> — dəyişiləbilən, <em>Immutable </em>— dəyişilə bilməyən olaraq anlamlandırılır. Daha yaxşı başa düşmək üçün aşağıdakı rəsmə diqqət yetirək.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/673/1*4Ntajlibw9FVC1iYdZcOTw.png" /></figure><p>Immutable obyektlərlə demək olar ki, tanışıq. Bircə Tuple bizim üçün yaddır. Lakin onu daha rahat mənimsəmək üçün ilk öncə Mutable-dən listlərə baxaq. Daha sonra sırası ilə — tuple, dictionary və setlərə baxacayıq.</p><h3>Lists-Listlər[…].</h3><p>Dəyişənlərimizi (variables) tək-tək saxlamamaq və bununla da data qarışıqlığının önünü almaq üçün List-lərdən istifadə edirik. Listlər yaradılarkən [kvadrat mötərizə] istifadə olunur və dəyişənlər vergüllə ayrılır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/777/1*2Xn1xCbju828u-TzcbXcjQ.png" /></figure><p>List-lər dəyişilə bilən olduqları üçün list-ə item əlavə etmək, silmək və ya mövcud item-i dəyişmək mümkündür.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/483/1*YibMUm8vpCrsSbVImYV5rw.png" /></figure><p>Gördüyünüz <em>method</em>-larla listlər üzərində dəyişikliklər aparmaq mümkündür.</p><h3>Tuples — (tapl`lar).</h3><p>Tapllar yuxarıdakı görüntüdən bildiyimiz üzərə immutable yəni dəyişilə bilməyən obyektdir. Başqa sözlə tapl-a daxil olan itemlər nə dəyişilə nə də silinə bilir. Həmçinin yeni itemlər də əlavə etmək olmur. Tuples <em>(mötərizə)</em> ilə yaradılır və vergüllə ayrılır (itemlər). İndeks kimi prinsplər eyniylə tuple-a da aiddir.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/240/1*Hrm-gSO5q3Uby7lyJhrO5Q.png" /><figcaption>yalnız count(),index() aktivdir.</figcaption></figure><h3>Dictionary — {key : value}.</h3><p>Dictionary-lər də içərisində itemlər saxlayır. Lakin digər collection-lardan fərqli olaraq dict.-lər <em>{qıvrılmış mötərizə} </em>ilə yaradılır və burada bir <em>key</em> və bir də <em>value</em> olur. Key və value isə : (qoşa nöqtə ilə ayrılır) və birlikdə 1 item adlanır. İtemlər eyni qaydada vergüllə ayrılır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/541/1*n0NDhqr0qVPSH9Pf6stj_w.png" /></figure><p>Dictionary-lər mutable olduqları üçün gördüyünüz əməliyyatları aparmaq mümkündür.</p><h3>Sets-{…..}.</h3><p>Setlər dictionary kimi {<em>qıvrılmış mötərizə</em>} ilə yazılır lakin burada key-lər olmur ancaq value-lər saxlayır. Bu dəyərlə UNİQUE olur! Yəni setin daxilinə eyni dəyəri bir neçə dəfə daxil etsək belə çapa veriləndə hər dəyərdən yalnız birini ekrana verəcək.<br>Riyazi olaraq çoxluqlar üzərində aapardığımız bütün əməliyyatlar (kəsişmə, birləşmə və s.) burda da tətbiq etmək olur.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/384/1*gW3_DkCoT5gH2aoVE5g9iA.png" /><figcaption>5 ədədi 4 dəfə daxil edilsə də 1 dəfə yazıldı.</figcaption></figure><h3>Bu günlük bu qədər. Növbəti gündə görüşənədək. Aşağıdakı platformalarda məni izləməyi unutmayın.</h3><blockquote><a href="https://www.linkedin.com/in/dataruf/"><em>linkedin hesabım</em></a></blockquote><blockquote><a href="https://www.instagram.com/dataruf/"><em>instagram hesabım</em></a></blockquote><blockquote><a href="https://www.youtube.com/@dataruf"><em>youtube hesabım</em></a></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=974cb3a23f58" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Data analizi üçün Python təməlləri! Gün 4.]]></title>
            <link>https://dataruf.medium.com/data-analizi-%C3%BC%C3%A7%C3%BCn-python-%C3%B6yr%C9%99nir%C9%99m-g%C3%BCn-4-3b71eb435ea0?source=rss-cd00cb2e9543------2</link>
            <guid isPermaLink="false">https://medium.com/p/3b71eb435ea0</guid>
            <dc:creator><![CDATA[Rüfət İsmayılov]]></dc:creator>
            <pubDate>Fri, 01 Nov 2024 11:27:30 GMT</pubDate>
            <atom:updated>2024-11-03T16:13:39.034Z</atom:updated>
            <content:encoded><![CDATA[<p>Keçmiş yazılarda pythonla tanış olduq, inputlardan danışdıq, data tipləri, dəyişənlər, şərti ifadələr və s. kimi ümumi məlumatları öyrəndik ya da bilirdik təkrar etdik :) Təkrar biliyin anasıdır…</p><p>Bu gün isə daha spesifik yanaşma edəcəyik. İlk öncə bildirmək istərdimki bizim öyrəndiklərimiz pythonun data analizində istifadəsinə əsaslanır biz burda sayt, tətbiq və sair hazırlamırıq. Nəysə…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*tc-2594VH452grtHrz7EIg.png" /></figure><h3>String-lər üzərində əməliyyatlar.</h3><p>Exceldən bizə textlərlə işləmək tanışdır yəqinki. Qarışıq datanın içərisindən bizə lazım olan nələrisə tapıb aşkar etmək, tapdığımız informasiyaları analiz etmək və yekundə bir insight əldə etmək bizim əsas hədəfimiz idi.</p><p>Pythonda da eyni məntiq üzrəindən işləyir. Hətta bəzi yazılışların excel formulalarına oxşadığını da görəcəksiniz. Elə isə başlayaq.</p><h4>1. index nədir? niyə var?</h4><p>İndeksləmə terminini eşitmisiniz yəqin ki. Buna bir növ sıralama kimi də baxmaq olar. Məsələn sırada 5 əsgər dayanıb və onları tanımayan biri uzaqdan birini çağırmaq istəsə: EEEyyy sıradan 3-cü yanıma gəl! deyə bilər. Bu an 3-cü sıradakı əsgər digərlərindən ayrılaraq çağırılan yerə gedir. (mesela yani).</p><p>Python-da indeksləmə prinspi də eyni sistemlə işləyir. Hər bir char(xarakter, simvol) üçün bir indeks müəyyən edilir. Python proqramlaşdırma dilində sıralama 0-dan başlayır və müsbət istiqamətdə artır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*b02bbLZed6NgaSgH_kKCYw.png" /></figure><p>PS. azalan istiqamətdə baxmaq istəsək -1 dən başlayacaq. Bu o deməkdir ki. uzunluğunu bilmədiyimiz n sayda simvoldan ibarət string-in sonuncu simvolunu çapa vermək istəsək -1 ilə o simvolu çağıra bilərik.</p><p>Nümunələr üzərindən hər şey daha aydın olacaq.</p><pre>cumlemiz = &#39;Bu gun python day 4-dur.&#39;<br>cumlemiz[0] # 0 pythonda birinci simvol. oputput olara1 &#39;B&#39; yazilacaq.</pre><pre>cumlemiz = &#39;Bu gun python day 4-dur.&#39;<br>cumlemiz[-1] # -1 pythonda son simvol. oputput olara &#39;.&#39; yazilacaq.</pre><p>İndi isə slicing dediyimiz parçalara ayırma məsələsinə baxaq. Kvadrat mötərizə daxilinə neçə yazsaq həmin indeksli simvolu qaytardı bəs bizə ilk 2 simvol (‘Bu’) və ya son 6 simvol (‘4-dur.’) lazım olsa necə? nümunə üzərindən baxaq.</p><pre>cumlemiz = &#39;Bu gun python day 4-dur.&#39;<br>cumlemiz[0:2] # &#39;0,1&#39; 0-dan başladı amma 2 daxil olmadı<br># daxil olmadığı üçün 0 və 1-ci indeksləri qaytardı.<br># output &#39;Bu&#39;</pre><pre>cumlemiz = &#39;Bu gun python day 4-dur.&#39;<br>cumlemiz[-6:] # -6 indeksden basladi axira qeder<br># output &#39;4-dur.&#39;</pre><h3>UPPER lower Capitalize Title kimi funksiyalar.</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/359/1*qHgkDdMmnwzXrgB09DShZg.png" /></figure><p>Upper funksiyası stringdə olan bütün simvolları (hərfi) böyük hərflə əvəzləyir. azerbaycan&gt;&gt;&gt;AZERBAYCAN oldu.</p><p>lower funksiyası eyni prinsplə işləyir hamısını kiçik hərflə əvəzləyir.</p><p>Title və capitalize qarışdırıla bilir. Fərqi anlamaq üçün cümlə daxilində nümunəyə baxaq.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/526/1*CzONspPxS2fQZAYSqQ5J2A.png" /></figure><p>Gördüyünüz kimi capitalize yalnızca cümlənin ilk simvolunu böyük hərflə əvəzlədi lakin title cümlə daxilində hər bir kəliməni böyük hərflə əvəzlədi. ( hətta -dir kəliməsini də)</p><h4>Stringləri birləşdirmək və bölmək (ayırmaq).</h4><p>Stringlər birləşdirərkən ən asan və sadə üsul toplamadır. Bəli, bəli)) sadə bir + işarəsi ilə iki stringi birləşdirə bilərsiniz. Lakin + istifadə edərək numeric dəyişənlə string birləşdirmək istəsək xəta alacayıq. Bunun üçün əvvəlcə numeric dəyişənimizi string tipinə dönüşdürüb daha sonra birləşdirmə əməliyyatını yerinə yetiririk.</p><p>Stringləri bölmək üçün isə .split(ayırıcı) metodundan istifadə edirik. Nümunələrə baxaq.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/509/1*_FhnWSSQKKY6cgy7wZqrbA.png" /><figcaption>+ və .split()</figcaption></figure><h4>Len, Count və index funksiyaları.</h4><p>Len stringin simvol sayını verir.<br>Count seçilən simvolun stringin daxilində neçə dəfə təkrarlandığını göstərir.<br>Index isə yuxarıda toxunduğumuz indeksləmə məntiqində indeksin ədədi nömrəsini verir.<br>Nümunələrə baxaq:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/887/1*vVlQgLBf8EUbFMpG6n3Qpg.png" /></figure><h3>Bu günlük bu qədər. Növbəti gündə görüşənədək. Aşağıdakı platformalarda məni izləməyi unutmayın.</h3><blockquote><a href="https://www.linkedin.com/in/dataruf/"><em>linkedin hesabım</em></a></blockquote><blockquote><a href="https://www.instagram.com/dataruf/"><em>instagram hesabım</em></a></blockquote><blockquote><a href="https://www.youtube.com/@dataruf"><em>youtube hesabım</em></a></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3b71eb435ea0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Data analizi üçün Python təməlləri! Gün 3.]]></title>
            <link>https://dataruf.medium.com/data-analizi-%C3%BC%C3%A7%C3%BCn-python-%C3%B6yr%C9%99nir%C9%99m-g%C3%BCn-3-f4634ea46ea4?source=rss-cd00cb2e9543------2</link>
            <guid isPermaLink="false">https://medium.com/p/f4634ea46ea4</guid>
            <dc:creator><![CDATA[Rüfət İsmayılov]]></dc:creator>
            <pubDate>Wed, 23 Oct 2024 12:32:27 GMT</pubDate>
            <atom:updated>2024-11-03T16:13:23.680Z</atom:updated>
            <content:encoded><![CDATA[<p>Ötən yazılarda Pythonda olan riyazi funksiyalar, istifadəçidən ‘Input’-lar almaq və s. kimi sadə anlayışlarla tanış olduq. Bu dəfə isə şərti ifadələr (conditional statments), məntiqi ifadələr (logic statments) və bu əməliyyatların köməyi ilə bir sıra riyazi hesablamaların pyhton üzərindən aparılmasına baxacayıq.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*ZhTDE3icSgu0ZseCUlOR3w.png" /></figure><h3>Conditional statments (şərti ifadələr)</h3><p>Adından da göründüyü kimi içərisində şərt anlayışı olan ifadələrdir. Daha bəsit bir dildə desək burada bir ifadə var lakin ifadə daxilində bir şərt saxlayır. Təbii ki, bu şərt ya ödənir ya da ödənmir. Məhz bu xarakteristikasına görə <strong>conditional statments </strong>alqoritmin yekununda <strong>boolean </strong>yəni<strong> True/False </strong>cavablar ala bilir.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*x8NpNnDEtHfIJo0N5ewjGw.png" /></figure><p>Conditional statements yazılışlarında müqayisə operatorlarından istifadə edilir.</p><p>Bu ifadələr aşağıdakılardır:</p><ol><li><em>‘==’ Bərabərdirmi? anlamına gəlir.</em></li><li><em>‘!=’ Fərqlidirmi? anlamına gəlir.</em></li><li><em>‘&gt;’ və ‘&lt;’ Böyükdürmü və kiçikdirmi? anlamında.</em></li><li><em>‘≥’ və ‘≤’ Böyük-bərabərdirmi və kiçik-bərabərdirmi? anlamında.</em></li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3qdPn4zlvYKa1MtXmvUOfA.png" /><figcaption>nümunə 1.</figcaption></figure><p>Gördüyünüz kimi if şərtini verdik, True cavabında gedəcəyi yolu qeyd etdik və daha sonra else: yazaraq False halında yəni əks halda nə etməli olduğunu da qeyd etdik.</p><p>şərtlərimizi yazdıqdan sonra mütləq qoşa nöqtə (:) qoyulmalı və sətirlərimizin başlanmasını və sonunu bildirən tab (boşluq) diqqət etməliyik.</p><h3>Logical operators (məntiqi operatorlar)</h3><p>Məntiqi operatorlara exceldə də çox istifadə edilən AND və OR kimi ifadələr daxildir.</p><p>AND və anlamındadır və bütün şərtlərin ödənməsi halında True olur.</p><p>OR və ya anlamındadır və ən az 1 şərt ödənirsə True olur.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*awT4lgs1851DmSrCSa1JcQ.png" /><figcaption>Logical statements</figcaption></figure><p>Şərti ifadələr if, elif, else istifadə etməklə yazılır. if ilkin şərti yoxlayır elif ilə ilkin şərtin false hissəsi yoxlanır əgər elif-də yazılan şərtimiz də doğru olmasa else ifadəsi ilə (qalan digər hallar) uyğun nəticə ekrana verilir.</p><p>Bəzi nümunələr üzərindən baxaq.</p><ol><li>İstifadəçidən çəkisini daxil etməsini tələb edək. Alınan cavaba uyğun 3 çəki dərəcəsi yaradaq. Əgər 50kq və daha aşağı çəkidirsə yüngül, 50–75 kq arası orta və 75+ kq isə ağır çəki dərəcəsi olsun. Buna uyğun nəticə ekrana verilsin.</li></ol><p>Həlli:</p><pre>weight = int(input(&#39;Çəkinizi daxil edin: &#39;))<br>print(&#39;Sizin çəkiniz &#39;+ str(weight)+&#39; kiloqramdır.&#39;)<br><br>if  weight &lt;=50:<br>    print(&#39;Yüngül çəki dərəcəsinə daxilsiniz.&#39;)<br>elif weight &lt;=75:<br>    print(&#39;Orta çəki dərəcəsinə daxilsiniz.&#39;)<br>else:<br>    print(&#39;Ağır çəki dərəcəsinə aidsiniz.&#39;)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/911/1*jpzBEmteDmDgvODhSAovxw.png" /></figure><p>2. And və Or operatorları üzərindən nümunəyə baxaq.</p><p>Şərt: Ölkədə yeni qanun qüvvəyə minib ki, 6 yaşından kiçik uşaqlar və 65 yaşından yuxarı ahıl şəxslər ictimai nəqliyyatdan ödənişsiz istifadə etsin. Buna uyğun kod blokunu hazırlayaq.</p><pre>age = int(input(&#39;Yaşınızı daxil edin: &#39;))<br>print(&#39;Sizin &#39;+str(age)+&#39; yaşınız var.&#39;)<br><br>if  age&lt;=6 or age&gt;=65:<br>    print(&#39;Siz ictimai nəqliyyatdan ödənişsiz istifadə edə bilərsiniz.&#39;)<br>else:<br>    print(&#39;Təəssüf ki, siz ictimai nəqliyyatdan ödənişsiz istifadə edə bilməzsiniz.&#39;)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wjzCPrW5jWIjkkMlS65odQ.png" /></figure><p>3. Riyazi bir hesablamanı şərti ifadə ilə hesablayaq.</p><p>Sual: İstifadəçidən doğum ilini daxil etməsini tələb edək (1900–2015 aralığında limit olsun!). Daha sonra onun doğum tarixinin son rəqəminin tək və ya cüt olmasını tapan kod yazaq.</p><pre>birth = int(input(&#39;Doğum ilinizi qeyd edin (1900-2015 aralığı): &#39;))<br><br>if  birth &lt;= 1900 or birth &gt;= 2015:<br>    print(&#39;Xahiş olunur doğru tarix qeyd edin.(1900-2015)&#39;)<br>elif birth % 10 % 2 == 0:<br>    print(&#39;Sizin doğum iliniz &#39;+str(birth)+&#39; və doğum ilinizin son rəqəmi cütdür.&#39;)<br>else:<br>    print(&#39;Sizin doğum iliniz &#39;+str(birth)+&#39; və doğum ilinizin son rəqəmi təkdir.&#39;)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AEn0sZ4lENNP0xTbkKAzag.png" /></figure><h4>Bu günlük bu qədər. Növbəti gündə görüşənədək. Aşağıdakı platformalarda məni izləməyi unutmayın.</h4><blockquote><a href="https://www.linkedin.com/in/dataruf/">linkedin hesabım</a></blockquote><blockquote><a href="https://www.instagram.com/dataruf/">instagram hesabım</a></blockquote><blockquote><a href="https://www.youtube.com/@dataruf">youtube hesabım</a></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f4634ea46ea4" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Data analizi üçün Python təməlləri! Gün 2.]]></title>
            <link>https://dataruf.medium.com/data-analizi-%C3%BC%C3%A7%C3%BCn-python-%C3%B6yr%C9%99nir%C9%99m-g%C3%BCn-2-a3a683d2fcbb?source=rss-cd00cb2e9543------2</link>
            <guid isPermaLink="false">https://medium.com/p/a3a683d2fcbb</guid>
            <category><![CDATA[python]]></category>
            <dc:creator><![CDATA[Rüfət İsmayılov]]></dc:creator>
            <pubDate>Sat, 19 Oct 2024 10:12:45 GMT</pubDate>
            <atom:updated>2024-11-03T16:13:00.583Z</atom:updated>
            <content:encoded><![CDATA[<p>Gün 1-də olan məşğələləri etdiyimizi varsayaraq keçirik gün 2-nin mövzularına.</p><p>Burada biz:<br> 1. Aritmetrik funksiyalar.<br> 2. input() istifadəçidən məlumat almaq<br> 3. Həmin dataların tipini dəyişdirmək.<br>haqqında məlumat alacayıq.</p><h3>Aritmetrik funksiyalar</h3><p>Burada ilk öncə müqayisə operatorlarına baxacayıq. Adından göründüyü kimi bu funksiyalar vasitəsilə biz iki dəyişən arasında müqayisə aparacayıq. Müqayisə operatorlarının cavabı True/False olur. Yəni boolean cavablar alacaq.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*oQqCknbNIphkJDJcd_Qhog.png" /></figure><blockquote><strong><em>&gt;; &lt;; ≥; ≤; ==; !=</em></strong></blockquote><pre># Arithmetric functions<br># &gt; &lt; &gt;= &lt;= == !=<br>a = 4<br>b = 3<br>print(a &gt; b)<br>print(a &lt; b)<br>print(a &gt;= b)<br>print(a &lt;= b)<br>print(a == b)<br>print(a != b)</pre><h3>Riyazi hesablamalar üçün funksiyalar</h3><p>Riyaziyyatdan bildiyimiz sadə riyazi əməllər buraya daxildir. Bunlara aid olaraq toplama, çıxma, vurma və bölmə əməliyyatlarını misal göstərmək olar.</p><pre># Riyazi ifadeler <br># + - * / (sade)<br># // ** %  ( qismet[tam hisse]  quvvete yukseltme   qaliq(natamam hisse))<br>a = 2<br>b = 1<br>print(a + b)<br>print(a - b)<br>print(a * b)<br>print(a / b)<br>print(a ** b)<br>print(a // b)<br>print(a % b)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/681/1*tzL789BntcIiYV6Z-L-AOQ.png" /></figure><h3>input() funksiyası ilə dəyişənlərin daxil edilməsi</h3><pre>ad = input(&#39;Adinizi daxil edin:&#39;)<br>yas = input(&#39;Yasinizi daxil edin:&#39;)<br>print(ad)<br>print(yas)</pre><p>input funksiyası ilə biz manual olaraq dəyişənlər daxil edə bilirik. input ilə daxil olunan dəyişənin tipindən aslı olmayaraq daxil edildikdən sonra özünü string kimi aparır. Yəni input-la rəqəm daxil olunsa belə onun üzərində riyazi əməliyyatlar aparmaq mümkün olmur. Yalnız stringlər kimi mətn əməliyyatları mümkündür.<br> Bunun üçün biz input daxil etməzdən öncə onun tipini dəyişməliyik. Beləcə problem aradan qalxmış olacaq.</p><pre>il = int(input(&#39;Dogum ilinizi qeyd edin:&#39;))<br>yas = 2024 - il<br>print(yas)</pre><p>Gördüyünüz kimi burada inputdan öncə int() (integer) funksiyasını yazaraq onun text yox tam ədəd olaraq başa düşülməsini təmin etdik. Daha sonra əməliyyat uğurlu oldu.</p><p>Bu günlük bu qədər. Növbəti gündə görüşənədək. Aşağıdakı platformalarda məni izləməyi unutmayın.</p><p><a href="https://www.linkedin.com/in/dataruf/">linkedin hesabım</a></p><p><a href="https://www.instagram.com/dataruf/">instagram hesabım</a></p><p><a href="https://www.youtube.com/@dataruf">youtube hesabım</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a3a683d2fcbb" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Data analizi üçün Python təməlləri! Gün 1.]]></title>
            <link>https://dataruf.medium.com/data-analizi-%C3%BC%C3%A7%C3%BCn-python-%C3%B6yr%C9%99nir%C9%99m-g%C3%BCn-1-e980e8adf122?source=rss-cd00cb2e9543------2</link>
            <guid isPermaLink="false">https://medium.com/p/e980e8adf122</guid>
            <category><![CDATA[python-basics-course]]></category>
            <category><![CDATA[python]]></category>
            <dc:creator><![CDATA[Rüfət İsmayılov]]></dc:creator>
            <pubDate>Fri, 18 Oct 2024 08:56:09 GMT</pubDate>
            <atom:updated>2024-11-03T16:12:33.230Z</atom:updated>
            <content:encoded><![CDATA[<blockquote>Salamlar! Uzun müddət sonra nəhayət dünyəvi problemləri həll edib təkrar mənəvi aləmimə (təhsil) qərq ola bildim. Ümid edirəm bu dönüş uzunmüddətli olar.<br> Öyrənməyin ən gözəl yolu öyrətmək olduğunu yəqin ki, çoxlarından eşitmisiniz. Bu səbəblə qərara aldım ki, bütün bildiklərimi sıfırlayaraq ömründə bir sətir belə kod yazmamış biri kimi Python öyrənim və eynən öyrəndiyim qaydada da blogda notlarımı sizinlə bölüşüm. Burada yazılanlarla Python dahisi olacaqsınız və ya Python ilə data analizini mükəmməl biləcəksiniz kimi iddialarım yoxdur! <br> Amma mükkəmmələ gedən yolda lazım olan bütün təməl biliklərə yiyələcəyinizi (yiyələnəcəyimi) söz verə bilərəm. Python əlifbamıza xoş gəldiniz.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*NW3MjZThgsVvUEClpjQvoA.png" /></figure><p><em>P.S.</em> Burada Pythonu proqramlaşdırma dili kimi yox daha çox onun Data analizi və Data science istiqamətlərində tətbiqində lazım olan təməl biliklərə və kitabxanalara fokuslanacayıq. <br>Uğurlar sizlərə! (Mənə də :) )</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JCyxiYRRYxWVbyi1KnqBQQ.png" /></figure><p>Python demək olar ki, hər yerdə ( bəli düz oxudunuz HƏR YER) birbaşa və ya dolayı yolla istifadə olunanan bir proqramlaşdırma dilidir. Dilin sadəliyi, asan mənimsənilməsi və çox sayda kitabxanalara ( libraries ) sahib olması bu qədər geniş yayılmasında mühüm rol oynamışdır. <br> Kod yazmağı öyrənəcəyik bəs bu kodları harda yazacayıq? Harda çalışdıracayıq?<br>Bütün bunlar üçün IDE (<strong>integrated development environment) </strong>adlanan və azərbaycan dilində <strong><em>inteqrasiya olunmuş inkişaf mühiti</em> </strong>kimi tərcümə olunan ( nəyə lazımdırsa artıq :) ) proqram təminatlarından istifadə olunur. Ən çox istifadə edilən vs code, Pycharm və Anaconda ( data sahəsində daha çox is. olunur) misal göstərmək olar. Lakin siyahımız bunlarla məhdudlaşmır və görəcəyiniz işə uyğun istədiyinizi istifadə edə bilərsiniz. Lakin öyrənmək üçün Google-un təqdim etdiyi Google Colab-dan istifadə edəcəyik.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*itPp_LoCelSwlplLYJPxAA.png" /><figcaption>Google Colab</figcaption></figure><p><a href="https://colab.google/">colab.google</a> saytına keçid edib orada “New Notebook” tıklayaraq kodlarınızı çalışdıra bilərsiniz ( google hesabınız olmalıdır). Bu arada Google Colabda ilk kodunuzu çalışdıranda bir az gecikmə ola bilər lakin sonradan sürətli olacaq.</p><p>Artıq kodumuzu harda yazacağımızı bildiyimizə görə kod yazmağa başlaya bilərik!</p><p>Proqramlaşdırma dünyasının da öz yazılmamış qanunları var! <strong><em>“Yaxçı”</em></strong> kod yazan gərək birinci <strong>Print(‘Hello World’)</strong> əmri ilə başlasın!</p><pre># bu bir kommentdir<br>print(&quot;Hello World&quot;)</pre><p>Print əmri bizim üçün nəticəni çap edir başqa sözlə desək nəticəni ekranda göstərir. Bu arada string(daha sonra ətraflı öyrəncəyik) məlumatları daxil edərkən tək və ya cüt dırnaqdan istifadə etməyimizin heç bir fərqi yoxdur ikisini də istifadə etmək olar (mənim seçimim cüt dırnaqdır). # işarəsi ilə isə biz komment sətri əlavə edə bilərik. Bəzən çox uzun və qarışıq kodların həm bizə həm də o kodu görəcək digər yoldaşlarımız üçün oxunaqlı olmaya bilir. Bir müddət sonra təkrar o kodu işləyərkən daha yaxşı anlamaq məqsədi ilə anlamlı kommentlərin yazılması məsləhətdir. (3 tək dırnaq və ya cüt dırnaqla bir sətr yox bir neçə sətri komment olaraq göstərmək olar)</p><h3>Data Types — Data tipləri</h3><h4>Data tiplərinə keçmədən öncə sıfırdan başladığımızı nəzərə alaraq dəyişənlə (variables) qısaca toxunaq istəyirəm.</h4><h4>Pythonda hər hansı məlumatı saxlaması üçün “görevlendirilen” tanımlayıcılara “Dəyişkən” adı veririk. a=1 ifadəsində bərabərliyin sol tərəfi (a) dəyişkənimizin adı, sağ tərəfi isə (1) həmin dəyişənin qiymətidir.</h4><p><em>Dəyişənlərin adlandırılmasında vacib məqamlar:</em></p><ol><li><em>Keyword-lərdən istifadə etmək olmaz. Yəni Pythonun əmr olaraq bildiyi müəyyən ifadələr var ki, onları dəyişkənlərimizin adlandırılmasında istifadə edə bilmərik.</em></li><li><em>Rəqəmlə başlaya bilməz (yalnız başlıqda olmaz). İngilis əlifbasındakı böyük və kiçik hərflər istifadə oluna bilər.</em></li><li><em>Boşluq olmaz! Bunun əvəzinə əsasən altdanxətt _ istifadə edirik.</em></li></ol><h3>Python dilində təməl data tiplərinə misal olaraq:</h3><p><strong>1.Numbers (ədədlər)</strong></p><p>Buraya integer (int) — tam ədəd və float — kəsr hissəli daxildir. (təbii ki, başqa tipləri də var sadəcə təməl olaraq bunlardan danışacayıq)</p><pre># a integer (tam)<br>a = 15<br># b float ( kəsr) <br>b = 15.5<br>Print(a)<br>Print(b)</pre><p><strong>2.Strings (str)- Exceldən də bildiyimiz text</strong></p><p>Stringlər cüt dırnaq içərisində yazılır. Başqa sözlə cüt dırnaq içərisində göstərilən istənilən ifadə string olur. Hətta “1111” belə rəqəm olmasına baxmayaraq string tipində olur.</p><pre># c string (text)<br>c = &quot;Salam 111&quot;<br>Print(c)</pre><p><strong>3.Boolean (bool) — True və False</strong></p><p>Boolean ifadələr bir növ HƏ/YOX tipli cavablarda istifadə olunur. Riyazi qarşılıqları uyğun olaraq 1(True)/0(False) olur.</p><pre># (boolean)<br>bool(1&gt;0)<br># cavab False</pre><p>Həmçinin <em>Lists(listlər), Tuples(tapllar) və Dicts(sözlüklər) </em>də var ki, daha sonra ətraflı toxunacayıq.</p><p>P.S yuxarıdakı kodları təkrar özünüz yazaraq colabda çalışdırın.</p><p>Print əmrini öyrəndik. İndi isə type() əmri haqqında danışaq. Bu əmr vasitəsilə verilən dəyişənin tipini göstərmək üçün istifadə edilir.</p><pre>a = 1<br>type (a)<br># burada cavab olaraq a dəyişənimizin tipi yazılacaq. Özünüz yoxlayın :)</pre><p>İstifadə olunan kodların hamısını aşağıda qeyd edəcəm.</p><pre>print(&#39;Hello World&#39;)<br><br># deyisenler Variables<br>a = 1<br>print(a)<br><br>b = 1.5<br>print(b)<br><br>bool (1&gt;0)<br><br>c = True<br>print(c)<br><br>name = &quot;Rufat&quot;<br>surname = &quot;Ismayilov&quot;<br>age = 28<br>height = 170.3<br>print(name,surname,age,height)<br><br># Type komutu<br><br>type(a)<br><br>type(b)<br><br>type(c)<br><br># bonus<br># variable tipini deyismek<br>a = 1<br>print(a)<br>type(a)<br><br>a = float(a)<br>print(a)<br>type(a)<br><br># gorduyunuz kimi 1 tam (integer) daha sonra 1.0 kesr (float) oldu.</pre><p>Gün 1 üçün kifayət olduğunu düşünürəm. Bura qədər gəldiyiniz üçün təşəkkür edirəm. Aşağıdakı platformalarda məni izləməyi unutmayın.</p><blockquote><a href="https://www.linkedin.com/in/dataruf/"><em>linkedin hesabım</em></a></blockquote><blockquote><a href="https://www.instagram.com/dataruf/"><em>instagram hesabım</em></a></blockquote><blockquote><a href="https://www.youtube.com/@dataruf"><em>youtube hesabım</em></a></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e980e8adf122" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>