Computer >> Máy Tính >  >> Lập trình >> Python

Phân tích tốc độ dữ liệu di động từ TRAI với gấu trúc bằng Python


Trong hướng dẫn này, chúng tôi sẽ phân tích tốc độ dữ liệu di động bằng gói pandas. Tải xuống tốc độ di động từ TRAI Trang web chính thức. Các bước tải tệp xuống.

Thuật toán

1. Go to the [TRAI](https://myspeed.trai.gov.in/ ) website.
2. Scroll down to the end of the page.
3. You will find mobile speed data for different months.
4. Download the September mobile data speeds.

Hãy xem các cột trong CSV tệp.

  • Tên mạng

  • Công nghệ mạng

  • Loại thử nghiệm

  • Tốc độ

  • Cường độ tín hiệu

  • Bang

Chúng tôi cần gấu trúc, numpy, matplotlib các thư viện. Hãy bắt đầu mã hóa để phân tích dữ liệu.

Ví dụ

# importing requires libraries
import pandas as pd
import numpy as np
import matplotlib.pyplot as plot
# constants
DATASET = 'sept19_publish.csv'
NETWORK_NAME = 'JIO'
STATE = 'Andhra Pradesh'
# lists to store the values
download_speeds = []
upload_speeds = []
states = []
operators = []
# importing the dataset using pandas
data_frame = pd.read_csv(DATASET)
# assigning column names for easy access
data_frame.columns = ['Network', 'Technology', 'Type Of Test', 'Speed', 'Signal Str
ength', 'State']
# getting unique states and operators from the dataset
unique_states = data_frame['State'].unique()
unique_operators = data_frame['Network'].unique()
print(unique_states)
print()
print(unique_operators)

Đầu ra

Nếu bạn chạy chương trình trên, bạn sẽ nhận được kết quả sau.

['Kolkata' 'Punjab' 'Delhi' 'UP West' 'Haryana' nan 'West Bengal'
'Tamil Nadu' 'Kerala' 'Rajasthan' 'Gujarat' 'Maharashtra' 'Chennai'
'Madhya Pradesh' 'UP East' 'Karnataka' 'Orissa' 'Andhra Pradesh' 'Bihar'
'Mumbai' 'North East' 'Himachal Pradesh' 'Assam' 'Jammu & Kashmir']
['JIO' 'AIRTEL' 'VODAFONE' 'IDEA' 'CELLONE' 'DOLPHIN']

Tiếp tục ...

# getting the data related to one network that we want
# we already declared the network previously
# this filtering the data
JIO = data_frame[data_frame['Network'] == NETWORK_NAME]
# iterating through the all states
for state in unique_states:
   # getting all the data of current state
   current_state = JIO[JIO['State'] == state]
   # getting download speed from the current_state
   download_speed = current_state[current_state['Type Of Test'] == 'download']
   # calculating download_speed average
   download_speed_avg = download_speed['Speed'].mean()
   # getting upload speed from the current_state
   upload_speed = current_state[current_state['Type Of Test'] == 'upload']
   # calculating upload_speed average
   upload_speed_avg = upload_speed['Speed'].mean()
   # checking if the averages or nan or not
   if pd.isnull(download_speed_avg) or pd.isnull(upload_speed_avg):
      # assigning zeroes to the both speeds
      download_speed, upload_speed = 0, 0
   else:
      # appending state if the values are not nan to plot
      states.append(state)
   download_speeds.append(download_speed_avg)
   upload_speeds.append(upload_speed_avg)
   # printing the download ans upload averages
   print(f'{state}: Download Avg. {download_speed_avg:.3f} Upload Avg. {upload _speed_avg:.3f}')

Đầu ra

Nếu bạn chạy đoạn mã trên, bạn sẽ nhận được kết quả sau.

Kolkata: Download Avg. 31179.157 Upload Avg. 5597.086
Punjab: Download Avg. 29289.594 Upload Avg. 5848.015
Delhi: Download Avg. 28956.174 Upload Avg. 5340.927
UP West: Download Avg. 21666.673 Upload Avg. 4118.200
Haryana: Download Avg. 6226.855 Upload Avg. 2372.987
West Bengal: Download Avg. 20457.976 Upload Avg. 4219.467
Tamil Nadu: Download Avg. 24029.364 Upload Avg. 4269.765
Kerala: Download Avg. 10735.611 Upload Avg. 2088.881
Rajasthan: Download Avg. 26718.066 Upload Avg. 5800.989
Gujarat: Download Avg. 16483.987 Upload Avg. 3414.485
Maharashtra: Download Avg. 20615.311 Upload Avg. 4033.843
Chennai: Download Avg. 6244.756 Upload Avg. 2271.318
Madhya Pradesh: Download Avg. 15757.381 Upload Avg. 3859.596
UP East: Download Avg. 28827.914 Upload Avg. 5363.082
Karnataka: Download Avg. 10257.426 Upload Avg. 2584.806
Orissa: Download Avg. 32820.872 Upload Avg. 5258.215
Andhra Pradesh: Download Avg. 8260.547 Upload Avg. 2390.845
Bihar: Download Avg. 9657.874 Upload Avg. 3197.166
Mumbai: Download Avg. 9984.954 Upload Avg. 3484.052
North East: Download Avg. 4472.731 Upload Avg. 2356.284
Himachal Pradesh: Download Avg. 6985.774 Upload Avg. 3970.431
Assam: Download Avg. 4343.987 Upload Avg. 2237.143
Jammu & Kashmir: Download Avg. 1665.425 Upload Avg. 802.925

Tiếp tục ...

# plotting the graph'
fix, axes = plot.subplots()
# setting bar width
bar_width = 0.25
# rearranging the positions of states
re_states = np.arange(len(states))
# setting the width and height
plot.figure(num = None, figsize = (12, 5))
# plotting the download spped
plot.bar(re_states, download_speeds, bar_width, color = 'g', label = 'Avg. Download
Speed')
# plotting the upload speed
plot.bar(re_states + bar_width, upload_speeds, bar_width, color='b', label='Avg. Up
load Speed')
# title of the graph
plot.title('Avg. Download|Upload Speed for ' + NETWORK_NAME)
# x-axis label
plot.xlabel('States')
# y-axis label
plot.ylabel('Average Speeds in Kbps')
# the label below each of the bars,
# corresponding to the states
plot.xticks(re_states + bar_width, states, rotation = 90)
# draw the legend
plot.legend()
# make the graph layout tight
plot.tight_layout()
# show the graph
plot.show()

Đầu ra

Nếu bạn chạy biểu đồ trên, bạn sẽ nhận được biểu đồ sau.

Phân tích tốc độ dữ liệu di động từ TRAI với gấu trúc bằng Python

Kết luận

Bạn có thể vẽ các đồ thị khác nhau dựa trên nhu cầu của mình. Chơi với tập dữ liệu bằng cách vẽ các biểu đồ khác nhau. Nếu bạn có bất kỳ nghi ngờ nào về hướng dẫn, hãy đề cập đến chúng trong phần bình luận.