Mobil veri hızlarını analiz etmek için TRAI`den alınan gerçek bir veri kümesini kullanalım ve bu ay belirli bir operatör veya eyalet için ortalama hızları görmeye çalışalım. Ayrıca, ilginç sonuçlar üretmek için Pandaların herhangi bir gerçek veri üzerinde ne kadar kolay kullanılabileceğini gösterecek.
Veri kümesi hakkında —
Hindistan Telekomünikasyon Düzenleme Kurumu (TRAI), MySpeed ‚Äã‚Äã(TRAI) . Buna, kullanıcı tarafından başlatılan hız testleri veya uygulama tarafından gerçekleştirilen periyodik arka plan testleri dahildir. Bu veri setini analiz etmeye ve bu ay belirli bir operatör veya durum için ortalama hızları görmeye çalışacağız.
Ham veri yapısını kontrol etme:
- TRAI MySpeed ‚Äã‚ÄãPortal adresine gidin ve geçen ayın CSV dosyasını yükleyin İndir bölümünde. Bu makalede kullanılan CSV dosyasını da indirebilirsiniz: sept18_publish.csv veya sept18_publish_drive.csv
Veri kümesindeki sütun adları
1. sütun Ağ Operatörünün - JIO, Airtel vb.
2. sütun, Ağ Teknolojisi güçlü> - 3G veya 4G ile ilgilidir.
3. sütun, başlatılan Test Türüdür - yükleyin veya indirin.
4. sütun, Kilobayt/saniye cinsinden Ölçülen Hız ‚Äã‚Äã `dir. Ölçüm sırasındaki Sinyal Gücü .
6. sütun Yerel Hizmet Alanı (LSA) veya testin yapıldığı dairedir - Delhi, Orissa vb. Buna basitçe `durumlar` diyeceğiz.
NOT. Bazı cihazların sinyali kesememeleri nedeniyle sinyal gücü na (Kullanılamaz)
olabilir. İşlemi basitleştirmek için hesaplamalarımızda bu parametrenin kullanımını göz ardı edeceğiz. Ancak bu, filtreleme sırasında kolayca bir koşul olarak eklenebilir.
Gerekli paketler -
Pandalar - a popüler veri analizi araç seti. Büyük veri kümelerini kırmak için çok güçlü.
Numpy - homojen veri dizileri üzerinde hızlı ve verimli işlemler sağlar. Bunu pandalar ve matplotlib ile birlikte kullanacağız.
Matplotlib - bir çizim kitaplığıdır. Çubuk grafikler yapmak için onun çubuk çizim fonksiyonunu kullanacağız.
Verileri analiz etmeye başlayalım.
Adım # 1: güçlü> Paketleri içe aktarın ve bazı sabitleri tanımlayın.
|
Adım # 2: Bir histogram oluşturma işlevine kolayca aktarılabilmesi için nihai hesaplanan sonuçları depolayacak birden çok liste tanımlayın. Durum (veya operatör), indirme hızı ve indirme hızı sırayla saklanır, böylece indeks, durum (veya operatör) ve bunlara karşılık gelen indirme ve yükleme hızlarına erişilebilir.
Örneğin, final_upload_speeds [2]
, 3. durumu için karşılık gelen değerleri ‚Äã‚Äã verecektir.
# tanımlı listeler
final_download_speeds
=
[]
final_upload_speeds
=
[]
final_states
< kod sınıfı = "anahtar kelime"> =
[]
Adım # 3: < /stron g> Dosyayı read_csv()
Pandas read_csv()
kullanarak içe aktarın ve ' df '. Bu, üzerinde çalışacağımız CSV içeriğinin bir DataFrame`ini oluşturacaktır.
df
=
pd.read_csv (DATASET_FILENAME)
# verilere dayalı olarak her sütun için başlık atayın
# bu, sütunlara kolayca erişmemizi sağlar
df.columns
=
[
`Servis Sağlayıcı`
,
` Technology`
,
`Test Tipi`
,
`Veri Hızı`
,
`Sinyal Gücü`
,
`Durum`
]
4. Adım: İlk olarak, bu veri kümesindeki tüm benzersiz durumları ve ifadeleri bulalım ve bunları ilgili durum listelerinde saklayalım. ve ifadeler.
Pandalar için operatörler
`Servis Sağlayıcı`
]. benzersiz ()
print
(
`OPERATÖRLER Bulunan:`
, operatörler)
Çıkış: güçlü>
STATES Bulunan: [`Kerala`` Rajasthan` `Maharashtra`` UP Doğu`` Karnataka` nan `Madhya Pradesh`` Kolkata`` Bihar`` Gujarat`` UP West, Orissa, Tamil Nadu, Delhi, Assam, Andhra Pradesh, Haryana, Pencap, Kuzey Doğu, Mumbai, Chennai, Himachal Pradesh, Jammu & amp; Keşmir`` Batı Bengal`] OPERATÖRLER Bulundu: [`IDEA`` JIO` `AIRTEL`` VODAFONE`` CELLONE`]
Adım # 5: Tanımlayın fixed_operator
işlevi, deyimi sabit tutacak ve o deyim için mevcut tüm durumları yineleyecek. Sabit bir durum için benzer bir fonksiyon oluşturabiliriz.
| < / tr>
Çıkış :
Kerala - Ort. İndirme: 26129.27 Ort. Yükleme: 5193.46 Rajasthan - Ort. İndirme: 27784.86 Ort. Yükleme: 5736.18 Maharashtra - Ort. İndirme: 20707.88 Ort. Yükleme: 4130,46 UP Doğu - Ort. İndir: 22451,35 Ort. Yükleme: 5727,95 Karnataka - Ort. İndirme: 16950.36 Ort. Yükleme: 4720.68 Madya Pradeş - Ort. İndir: 23594.85 Ort. Yükleme: 4802.89 Kalküta - Ort. İndir: 26747.80 Ort. Yükleme: 5655.55 Bihar - Ort. İndir: 31730.54 Ort. Yükleme: 6599.45 Gujarat - Ort. İndirme: 16377,43 Ort. Yükleme: 3642.89 UP Batı - Ort. İndirme: 23720,82 Ort. Yükleme: 5280.46 Orissa - Ort. İndir: 31502.05 Ort. Yükleme: 6895.46 Tamil Nadu - Ort. İndirme: 16689.28 Ort. Yükleme: 4107,44 Delhi - Ort. İndirme: 20308.30 Ort. Yükleme: 4877.40 Assam - Ort. İndir: 5653.49 Ort. Yükleme: 2864.47 Andhra Pradesh - Ort. İndirme: 32444.07 Ort. Yükleme: 5755,95 Haryana - Ort. İndirme: 7170.63 Ort. Yükleme: 2680.02 Pencap - Ort. İndirme: 14454,45 Ort. Yükleme: 4981.15 Kuzey Doğu - Ort. İndir: 6702.29 Ort. Yükleme: 2966.84 Bombay - Ort. İndir: 14070.97 Ort. Yükleme: 4118.21 Chennai - Ort. İndirme: 20054.47 Ort. Yükleme: 4602.35 Himaşal Pradeş - Ort. İndirme: 7436.99 Ort. Yükleme: 4020.09 Jammu & amp; Keşmir - Ort. İndirme: 8759.20 Ort. Yükleme: 4418.21 Batı Bengal - Ort. İndir: 16821.17 Ort. Karşıya Yükle: 3628.78
Verilerin çizilmesi —
Belirli bir aralık boyunca eşit aralıklı değerler döndüren arange ()
Numpy yöntemini kullanın. Burada final_states
listesinin uzunluğunu geçerek, 0`dan listedeki durum sayısına kadar ‚Äã‚Äã değerleri alıyoruz, örneğin [0, 1, 2, 3 ...]
Sonra bu yerde bir çubuk oluşturmak için bu indeksleri kullanabiliriz. İkinci çubuk, birinci çubuğun konumunu çubuğun genişliğine göre kaydırarak oluşturulur.
fig, ax
=
plt.subplots ()
# genişlik her bir bar
bar_width
=
0,25
her çubuğun # opaklığı
opaklık
=
0,8
# pozisyonları kaydet
index
=
np.arange (
len
(f inal_states))
# plt. bar () pozisyon alır
# sütun, çizim için veri,
# her çubuğun genişliği ve diğer bazı
# opaklık ve renk gibi isteğe bağlı parametreler
# bir indirme programı oluşturun
bar_download
=
plt.bar (index, final_download_speeds,
bar_width, alpha
=
`b`
, label
=
)
# bir indirme oluştur program
bar_upload
=
plt.bar ( dizin
bar_width, final_upload_speeds,
bar_width, alpha
=
,
label
=
`Yükle`
)
# grafik adı
plt.title (
`Ort. `
+
str
Tahmini hızların histogramı Başka bir aya ait verileri de alalım ve veri hızlarındaki farkı görmek için birlikte çizelim. Bu örnekte, önceki aya ait veri kümesi sept18_publish.csv, ve gelecek ayın veri kümesi — oct18_publish.csv . Sadece aynı adımları tekrar izlememiz gerekiyor. Verileri bir ay daha okuyun. Sonraki veri çerçevelerinde filtreleyin ve ardından biraz farklı bir yöntem kullanarak çizin. Sütunların inşası sırasında, 3. ve 4. sütunları (ikinci dosyanın yüklenmesine ve indirilmesine karşılık gelen) sütunların genişliğinin 2 ve 3 katı büyüteceğiz, böylece doğru konumlarında olacaklar. 4 çubuk çizerken kaydırma mantığı 2 aylık karşılaştırma verileri için uygulama aşağıdadır: plt.xlabel (
`Durumlar`
)
# Y ekseni etiketi
plt.ylabel (
`Kbps cinsinden Ortalama Hızlar`
)
# her sütunun altında bir etiket,
# durumla eşleşir
plt.xticks (index
+
bar_width, final_states, döndürme
=
90
plt .le gend ()
# grafik düzenini katı yap
plt.tight_layout ()
> # grafiği göster plt.show ()
İki aylık verilerin karşılaştırılması —
ShopLatest questions Wiki |