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.
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.
# 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 ikiDataFrame
-də olan sətirləri qaytarır.outer
: bütün sətirləri qaytarır və çatışmayan dəyərləriNaN
ilə tamamlayır.left
: solDataFrame
-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.
# 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.
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_on
və right_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!
GO TO FULL VERSION