কম্পিউটার টিউটোরিয়াল

পাইথনে পান্ডাজ দিয়ে TRAI-এর মোবাইল ডেটা স্পিড বিশ্লেষণ

এই টিউটোরিয়ালে আমরা পান্ডাজ প্যাকেজ ব্যবহার করে মোবাইল ডেটা স্পিড বিশ্লেষণ করব। ডেটা TRAI-এর অফিসিয়াল ওয়েবসাইট থেকে ডাউনলোড করতে হবে।

ডেটা ডাউনলোড করার ধাপ

১. TRAI ওয়েবসাইট (https://myspeed.trai.gov.in/) এ যান।
২. পেজের নিচে স্ক্রল করুন।
৩. বিভিন্ন মাসের মোবাইল স্পিড ডেটা পাবেন।
৪. সেপ্টেম্বরের মোবাইল ডেটা স্পিড ডাউনলোড করুন।

CSV ফাইলের কলামগুলো:

  • Network Name
  • Network Technology
  • Type Of Test
  • Speed
  • Signal Strength
  • State

প্রয়োজনীয় লাইব্রেরি: pandas, numpy, matplotlib।

কোড উদাহরণ

import pandas as pd
import numpy as np
import matplotlib.pyplot as plot

# কনস্ট্যান্ট
DATASET = 'sept19_publish.csv'
NETWORK_NAME = 'JIO'
STATE = 'Andhra Pradesh'

# ডেটা স্টোর করার লিস্ট
download_speeds = []
upload_speeds = []
states = []
operators = []

# ডেটাসেট ইম্পোর্ট
data_frame = pd.read_csv(DATASET)

# কলাম নাম দিন সহজ অ্যাক্সেসের জন্য
data_frame.columns = ['Network', 'Technology', 'Type Of Test', 'Speed', 'Signal Strength', 'State']

# ইউনিক স্টেট এবং অপারেটর বের করুন
unique_states = data_frame['State'].unique()
unique_operators = data_frame['Network'].unique()
print(unique_states)
print()
print(unique_operators)

আউটপুট

['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']

এনালাইসিস চালু...

# নির্দিষ্ট নেটওয়ার্কের ডেটা ফিল্টার
JIO = data_frame[data_frame['Network'] == NETWORK_NAME]

# সব স্টেটের জন্য লুপ
for state in unique_states:
    # বর্তমান স্টেটের ডেটা
    current_state = JIO[JIO['State'] == state]
    
    # ডাউনলোড স্পিড
    download_speed = current_state[current_state['Type Of Test'] == 'download']
    download_speed_avg = download_speed['Speed'].mean()
    
    # আপলোড স্পিড
    upload_speed = current_state[current_state['Type Of Test'] == 'upload']
    upload_speed_avg = upload_speed['Speed'].mean()
    
    # NaN চেক
    if pd.isnull(download_speed_avg) or pd.isnull(upload_speed_avg):
        download_speed, upload_speed = 0, 0
    else:
        states.append(state)
    
    download_speeds.append(download_speed_avg)
    upload_speeds.append(upload_speed_avg)
    
    print(f'{state}: Download Avg. {download_speed_avg:.3f} Upload Avg. {upload_speed_avg:.3f}')

আউটপুট (আংশিক)

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
...
Jammu & Kashmir: Download Avg. 1665.425 Upload Avg. 802.925

গ্রাফ আঁকা...

fig, axes = plot.subplots()
bar_width = 0.25
re_states = np.arange(len(states))
plot.figure(num=None, figsize=(12, 5))

# ডাউনলোড স্পিড বার
plot.bar(re_states, download_speeds, bar_width, color='g', label='Avg. Download Speed')
# আপলোড স্পিড বার
plot.bar(re_states + bar_width, upload_speeds, bar_width, color='b', label='Avg. Upload Speed')

plot.title('Avg. Download|Upload Speed for ' + NETWORK_NAME)
plot.xlabel('States')
plot.ylabel('Average Speeds in Kbps')
plot.xticks(re_states + bar_width, states, rotation=90)
plot.legend()
plot.tight_layout()
plot.show()

গ্রাফ আউটপুট

পাইথনে পান্ডাজ দিয়ে TRAI-এর মোবাইল ডেটা স্পিড বিশ্লেষণ

উপসংহার

আপনি প্রয়োজন অনুযায়ী বিভিন্ন গ্রাফ আঁকতে পারেন। ডেটাসেট নিয়ে পরীক্ষা-নিরীক্ষা করুন। প্রশ্ন থাকলে কমেন্ট করুন।


  1. পাইথনে Pandas .query() মেথড দিয়ে ডেটা ফিল্টার করা

  2. পাইথনে ডেটা অ্যানালাইসিস ও ভিজ্যুয়ালাইজেশন (pandas, matplotlib)

  3. পাইথন রেগুলার এক্সপ্রেশন দিয়ে স্ট্রিং থেক ডেটা এক্সট্র্যাক্ট করবেন?

  4. পাইথন এবং Boto3 দিয়ে সহজে S3 অবজেক্ট রিট্রিভ করুন: ধাপে ধাপে গাইড