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

পাইথন - নেস্টেড ডিকশনারির তালিকা প্যান্ডাস DataFrame-এ রূপান্তর করা


অনেক সময় পাইথন বিভিন্ন সোর্স থেকে ডেটা গ্রহণ করে যা CSV, JSON ইত্যাদি বিভিন্ন ফরম্যাটে থাকতে পারে, যেগুলিকে পাইথন লিস্ট বা ডিকশনারিতে রূপান্তর করা যায়। কিন্তু প্যান্ডাস (pandas) এর মতো প্যাকেজ ব্যবহার করে ক্যালকুলেশন বা অ্যানালাইসিস প্রয়োগ করতে হলে, এই ডেটাকে DataFrame-এ রূপান্তর করতে হয়। এই লেখায় আমরা দেখব কিভাবে একটি পাইথন লিস্ট, যার উপাদানগুলো নেস্টেড ডিকশনারি, কে একটি প্যান্ডাস DataFrame-এ রূপান্তর করা যায়।

আমরা প্রথমে নেস্টেড ডিকশনারির তালিকা নিই এবং সেখান থেকে ডেটার সারি (rows) বের করি। তারপর আমরা একটি আরেকটি for লুপ ব্যবহার করে সারিগুলিকে একটি নতুন লিস্টে যুক্ত করি যা eredetligen খালি ছিল। শেষে প্যান্ডাস লাইব্রেরির DataFrame ফাংশন প্রয়োগ করে DataFrame তৈরি করি।

উদাহরণ

import pandas as pd

# দেওয়া নেস্টেড ডিকশনারির তালিকা
data_list = [
    {
        "Fruit": [{"Price": 15.2, "Quality": "A"},
                  {"Price": 19, "Quality": "B"},
                  {"Price": 17.8, "Quality": "C"}],
        "Name": "Orange"
    },
    {
        "Fruit": [{"Price": 23.2, "Quality": "A"},
                  {"Price": 28, "Quality": "B"}],
        "Name": "Grapes"
    }
]

rows = []

# ডেটা থেকে সারি বের করা
for data in data_list:
    data_row = data['Fruit']
    n = data['Name']
    for row in data_row:
        row['Name'] = n
        rows.append(row)

# DataFrame-এ রূপান্তর
df = pd.DataFrame(rows)
print(df)

আউটপুট

   Price Quality    Name
0   15.2       A  Orange
1   19.0       B  Orange
2   17.8       C  Orange
3   23.2       A  Grapes
4   28.0       B  Grapes

Pivot প্রয়োগ করা

আমরা চাইলে pivot_table ফাংশন ব্যবহার করে ডেটাকে আমাদের পছন্দমতো পুনর্গঠন করতে পারি।

উদাহরণ

import pandas as pd

# নেস্টেড ডিকশনারির তালিকা আরম্ভ করা
data_list = [
    {
        "Fruit": [{"Price": 15.2, "Quality": "A"},
                  {"Price": 19, "Quality": "B"},
                  {"Price": 17.8, "Quality": "C"}],
        "Name": "Orange"
    },
    {
        "Fruit": [{"Price": 23.2, "Quality": "A"},
                  {"Price": 28, "Quality": "B"}],
        "Name": "Grapes"
    }
]

rows = []

# সারি যুক্ত করা
for data in data_list:
    data_row = data['Fruit']
    n = data['Name']
    for row in data_row:
        row['Name'] = n
        rows.append(row)

# DataFrame ব্যবহার
df = pd.DataFrame(rows)
df = df.pivot_table(index='Name', columns=['Quality'],
                    values=['Price']).reset_index()
print(df)

আউটপুট

      Name  Price          
Quality        A     B     C
0    Grapes   23.2  28.0   NaN
1    Orange   15.2  19.0  17.8

  1. পাইথনে লিস্টকে লিস্ট অফ লিস্টে রূপান্তর

  2. পাইথনে ডিকশনারিকে টাপলের লিস্টে রূপান্তর

  3. পাইথন প্রোগ্রাম: টাপলের লিস্টকে ডিকশনারিতে রূপান্তর

  4. Python Dictionary কে লিস্টে রূপান্তর করা