CodeGym /Kurslar /Python SELF AZ /Bir neçə Excel vərəqindən və fayllarından məlumatların bi...

Bir neçə Excel vərəqindən və fayllarından məlumatların birləşdirilməsi

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

1. Niyə verilənləri birləşdirməliyik?

Müasir dünyada verilənləri elə də tez-tez bütöv bir faylda tapmaq olmur. Adətən, məlumatlar bir neçə cədvəl və fayl arasında paylanır, və tam bir analiz üçün onları birləşdirmək lazım olur. Məsələn, hər ay üçün satış məlumatlarınız ayrı-ayrı fayllarda ola bilər. Ümumi trendləri analiz etmək üçün bu məlumatları bir cədvəldə birləşdirmək lazımdır.

Üstəlik, verilənlərin birləşdirilməsi sizə kömək edir:

  • Hesabatların əl ilə hazırlanmasına sərf olunan vaxtı azaltmaq.
  • Verilənlərin əl ilə köçürülməsi ilə bağlı səhvləri minimuma endirmək.
  • Verilənlərin analiz prosesini avtomatlaşdırmaq.

2. Məlumatların birləşdirilməsi üsulları

Məlumatların konkatenasiyası

Məlumatların şaquli və üfüqi birləşdirilməsi konkatenasiya adlanır. Sadə bir nümunə ilə başlayaq: bizdə iki DataFrame var və onları birləşdirmək istəyirik.

Python

import pandas as pd

# Oxşar struktura malik iki DataFrame yaradırıq
data1 = {
    'Product': ['Apples', 'Bananas'],
    'Sales': [100, 150]
}

data2 = {
    'Product': ['Cherries', 'Dates'],
    'Sales': [75, 200]
}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# Şaquli konkatenasiya (sətirlər əlavə edirik)
combined = pd.concat([df1, df2], ignore_index=True)
print(combined)

Nəticədə biz hər iki mənbədən bütün sətirlərin daxil olduğu birləşdirilmiş bir DataFrame əldə edəcəyik. ignore_index=True parametrinə diqqət yetirin, bu, son DataFrame-də indeksləri sıfırlayır.

merge metodu ilə məlumatların birləşdirilməsi

Əgər ortaq sütunlara (məsələn id və ya Product) əsaslanaraq birləşdirilməsi lazım olan məlumatlarınız varsa, merge metodu köməyə gəlir. Bu, məlumatlarınız üçün "tanışlıq görüşü" kimidir — bir araya gəlmək üçün ortaq bir şeyləri olmalıdır.

Python

# Məlumat nümunəsi yaradırıq
sales_data = {
    'Product': ['Apples', 'Bananas', 'Cherries'],
    'Sales': [100, 150, 75]
}

price_data = {
    'Product': ['Apples', 'Bananas', 'Dates'],
    'Price': [1.2, 0.8, 3.0]
}

sales_df = pd.DataFrame(sales_data)
price_df = pd.DataFrame(price_data)

# 'Product' sütunu üzrə DataFrame birləşdiririk
merged_df = pd.merge(sales_df, price_df, on='Product', how='inner')
print(merged_df)

Məhsullar haqqında məlumatımız olsa da, merge yalnız Product açar sütununda uyğunluq olan sətirləri qaytarır.

Birləşdirmənin növlərini nəzərdən keçirək:

  • inner (standart): yalnız hər iki DataFrame-də olan sətirləri qaytarır.
  • outer: bütün sətirləri qaytarır və çatışmayan dəyərləri NaN ilə tamamlayır.
  • left: sol DataFrame-dən bütün sətirləri və sağdakı uyğun olanları qaytarır.
  • right: sağ DataFrame-dən bütün sətirləri və soldakı uyğun olanları qaytarır.

Bir neçə vərəqdən məlumatların birləşdirilməsi

İndi pandas ilə birləşmənin necə işlədiyini yenidən xatırladıq, gəlin bunu tətbiq edək və tək bir Excel faylının bir neçə vərəqindən məlumatları birləşdirək.

Python

# Bir neçə vərəqi olan Excel faylını oxuyuruq
excel_file = pd.ExcelFile('sales_data.xlsx')

# Bütün vərəqlərin adlarının siyahısı
sheet_names = excel_file.sheet_names

# Hər vərəq üçün məlumatları ayrı bir DataFrame oxuyuruq və onları bir siyahıya yerləşdiririk
dataframes = [pd.read_excel(excel_file, sheet_name=sheet_name) for sheet_name in sheet_names]

# Bütün DataFrame-lərin şaquli konkatenasiyası
all_sales_data = pd.concat(dataframes, ignore_index=True)

print(all_sales_data)

Burada biz Excel faylındakı bütün vərəqləri ayrı DataFrame kimi oxuyuruq və sonra onları birləşdiririk. Güclü üsuldur, düzdür?

Bir neçə fayldan məlumatların birləşdirilməsi

Praktikada siz bir neçə fayla bölünmüş məlumatlarla qarşılaşa bilərsiniz. Gəlin onları birləşdirmə prosesini necə avtomatlaşdıracağımıza baxaq.

Python

import glob

# Faylların yolu
file_path = r'data/sales_*.xlsx'

# Verilən şablona uyğun olan bütün faylların siyahısını əldə edirik
files = glob.glob(file_path)

# Hər fayldan məlumatları ayrı bir DataFrame oxuyuruq və onları siyahıya əlavə edirik
dataframes = [pd.read_excel(file) for file in files]

# Bütün DataFrame-lərin şaquli konkatenasiyası
all_files_data = pd.concat(dataframes, ignore_index=True)

print(all_files_data)

Biz glob kitabxanasını göstərilən şablona uyğun faylları əldə etmək üçün istifadə edirik və sonra hər fayldan məlumatları tək bir DataFrame-də birləşdiririk.

3. Real istifadəyə dair nümunələr

Biznes-analitika üçün məlumatların birləşdirilməsi

Tutaq ki, sən hər ayın satış məlumatlarını ayrı bir faylda işləyən bir analitiksən. Yuxarıda adı çəkilən texnikalar vasitəsilə məlumatları asanlıqla birləşdirib illik trendləri təhlil etmək və aktual nəticələr çıxarmaq olar.

Hesabatların avtomatlaşdırılması

Məlumatların birləşdirilməsinin avtomatlaşdırılması sayəsində sən bir skript qura bilərsən ki, bu skript müxtəlif mənbələrdən məlumatları toplasın və gündəlik, həftəlik və ya aylıq hesabatları avtomatik olaraq yaratsın.

Fərqli mənbələrdən gələn məlumatların işlənməsi

Məlumatların fərqli sistemlərdən gəldiyi hallarda hər bir mənbə müəyyən hissəni təqdim edə bilər. Pandas istifadə edərək onları bir araya gətirərək tam mənzərə əldə edə bilərsən, məsələn, müştərilər və onların alış-verişləri haqqında məlumatları birləşdirərək.

4. Tipik səhvlər və onların düzəldilməsi

Tez-tez rast gəlinən səhv — birləşdirilən DataFrame-lərdə sütun adlarının uyğun gəlməməsidir. Əmin olun ki, məlumatları birləşdirdiyiniz sütunlar həqiqətən eyni olub və lazım gəldikdə merge metodunda left_onright_on parametrlərindən istifadə edin.

Bəzən məlumatlar birləşdirildikdən sonra itkin dəyərlər ola bilər. Bu problemi həll etmək üçün fillna metodu ilə dəyərləri doldurma və ya dropna ilə silmək üsullarından istifadə edin.

Əgər məlumatlarınızda təkrarlamalar varsa, concat metodu gözlədiyinizdən daha uzun bir DataFrame yarada bilər. Bu halda, təmizləmə üçün drop_duplicates metodundan istifadə edin.

İndi, pandas-da məlumatların birləşdirilməsi üçün metod və üsulları açıqladıq, artıq real avtomatlaşdırma və məlumatların analizi ilə bağlı vəzifələrin öhdəsindən gəlmək üçün alətləriniz var. Bu bilikləri yaxşılıq üçün istifadə edin!

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION