অনেক সময় পাইথন বিভিন্ন উত্স থেকে ডেটা গ্রহণ করবে যা বিভিন্ন ফর্ম্যাটে যেমন csv, JSON ইত্যাদি হতে পারে যা পাইথন তালিকা বা অভিধান ইত্যাদিতে রূপান্তরিত হতে পারে৷ কিন্তু পান্ডাগুলির মতো প্যাকেজগুলি ব্যবহার করে গণনা বা বিশ্লেষণ প্রয়োগ করতে, আমাদের এই ডেটাকে রূপান্তর করতে হবে একটি ডেটাফ্রেম। এই নিবন্ধে আমরা দেখব কিভাবে আমরা একটি প্রদত্ত পাইথন তালিকাকে রূপান্তর করতে পারি যার উপাদানগুলি একটি নেস্টেড অভিধান, একটি পান্ডাস ডাটফ্রেমে৷
আমরা প্রথমে নেস্টেড অভিধানের তালিকা নিই এবং এটি থেকে ডেটার সারিগুলি বের করি। তারপর আমরা নতুন তালিকায় সারি যুক্ত করার জন্য আরেকটি লুপ তৈরি করি যা মূলত খালি তৈরি করা হয়েছিল। অবশেষে আমরা ডাটা ফ্রেম তৈরি করতে পান্ডাস লাইব্রেরিতে DataFrames ফাংশন প্রয়োগ করি।
উদাহরণ
import pandas as pd # Given nested dictionary 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 = [] # Getting rows for data in list: data_row = data['Fruit'] n = data['Name'] for row in data_row: row['Name'] = n rows.append(row) # Convert to data frame 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_table ফাংশন প্রয়োগ করতে পারি।
উদাহরণ
import pandas as pd # List of nested dictionary initialization 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" } ] #print(list) rows = [] # appending rows for data in list: data_row = data['Fruit'] n = data['Name'] for row in data_row: row['Name'] = n rows.append(row) # using data frame 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