Veriyi parçalara yüklemek için bir yineleyici yazma (5)
Sona geldik. Büyük bir veri kümesini parça parça işlemede çok şey öğrendin. Bu son egzersizde, veriyi işleme kodlarının tamamını tek bir fonksiyonda toplayacaksın; böylece aynı şeyleri tekrar tekrar yazmadan kodu yeniden kullanabileceksin.
İşlenecek dosyanın adını ve veri kümesinde işlem yapmak istediğin satırların ülke kodunu argüman olarak alan plot_pop() fonksiyonunu tanımlayacaksın.
Önceki egzersizlerde yazdığın tüm kodlar plot_pop() içinde yer alacağı için, fonksiyonu çağırman zaten şunları yapar:
- Dosyayı parça parça yükler,
- Kentsel nüfus değerleri için yeni bir sütun oluşturur ve
- Kentsel nüfus verisini görselleştirir.
Oldukça çok iş var, ama artık fonksiyon sayesinde istediğin dosya ve ülke kodu için aynı süreci tekrarlamak ve görselleştirmek çok daha kolay!
Geçerli dizininde bulunan 'ind_pop_data.csv' dosyasındaki verileri kullanacaksın. Senin için pandas ve matplotlib.pyplot sırasıyla pd ve plt olarak içe aktarıldı.
İşin bittiğinde, grafiklere bir göz at ve edindiğin yeni becerileri düşün. Yolculuk burada bitmiyor! Bu verilerle çalışmaktan keyif aldıysan, Kaggle üzerinde mevcut olan ön işlenmiş sürümü kullanarak keşfetmeye devam edebilirsin.
Bu egzersiz
Python Araç Kutusu
kursunun bir parçasıdırEgzersiz talimatları
plot_pop()fonksiyonunu tanımla: iki argüman alsın; ilki işlenecek dosya içinfilename, ikincisi veri kümesinde işlenecek ülke içincountry_code.plot_pop()fonksiyonunu çağırarak'ind_pop_data.csv'dosyasında ülke kodu'CEB'olan verileri işle.plot_pop()fonksiyonunu çağırarak'ind_pop_data.csv'dosyasında ülke kodu'ARB'olan verileri işle.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Define plot_pop()
def ____(____, ____):
# Initialize reader object: urb_pop_reader
urb_pop_reader = pd.read_csv(filename, chunksize=1000)
# Initialize empty DataFrame: data
data = pd.DataFrame()
# Iterate over each DataFrame chunk
for df_urb_pop in urb_pop_reader:
# Check out specific country: df_pop_ceb
df_pop_ceb = df_urb_pop[df_urb_pop['CountryCode'] == country_code]
# Zip DataFrame columns of interest: pops
pops = zip(df_pop_ceb['Total Population'],
df_pop_ceb['Urban population (% of total)'])
# Turn zip object into list: pops_list
pops_list = list(pops)
# Use list comprehension to create new DataFrame column 'Total Urban Population'
df_pop_ceb['Total Urban Population'] = [int(tup[0] * tup[1] * 0.01) for tup in pops_list]
# Concatenate DataFrame chunk to the end of data: data
data = pd.concat([data, df_pop_ceb])
# Plot urban population data
data.plot(kind='scatter', x='Year', y='Total Urban Population')
plt.show()
# Set the filename: fn
fn = 'ind_pop_data.csv'
# Call plot_pop for country code 'CEB'
# Call plot_pop for country code 'ARB'