ডেটা বিশ্লেষণ বা প্রসেসিং-এ আমরা এমন পরিস্থিতির সম্মুখীন হই যেখানে দেওয়া তালিকাকে রিমডেল বা রিশেপ করতে হয় ভিন্ন কলাম বিশিষ্ট তালিকা পাওয়ার জন্য। এটি আমরা বহুবিধ পদ্ধতিতে অর্জন করতে পারি।
Slicing ব্যবহার করে
আমরা তালিকাকে নির্দিষ্ট উপাদানে স্লাইস করে কলামার কাঠামো তৈরি করতে পারি। এখানে দেওয়া তালিকাকে একটি নতুন তালিকায় রূপান্তর করা হয়েছে যেখানে উপাদানগুলো মাঝখান থেকে ভাগ করা হয়েছে। আমরা দুটি for লুপ ব্যবহার করেছি। বাহ্যিকটি শূন্য উপাদান থেকে দ্বিতীয় উপাদান পর্যন্ত এবং অভ্যন্তরীণটি দ্বিতীয় উপাদান থেকে শেষ পর্যন্ত।
উদাহরণ
x = [[5,10,15,20],[25,30,35,40],[45,50,55,60]]
# Using list slicing and list comprehension
print("The Given input is : \n" + str(x))
result = [m for y in [[n[2:], [n[0:2]]] for n in x] for m in y]
print("Converting column to separate elements in list of lists : \n" + str(result))
আউটপুট
উপরোক্ত কোডটি রান করলে নিচের ফলাফল পাওয়া যায়:
The Given input is : [[5, 10, 15, 20], [25, 30, 35, 40], [45, 50, 55, 60]] Converting column to separate elements in list of lists : [[15, 20], [[5, 10]], [35, 40], [[25, 30]], [55, 60], [[45, 50]]]
itertools.chain() এবং list comprehension ব্যবহার করে
দুটি for লুপের বদলে আমরা itertools-র chain মেথডও ব্যবহার করতে পারি। লিস্ট কম্প্রিহেনশন ব্যবহার করে একই লজিক প্রয়োগ করে কলামগুলো মাঝখানে ভাগ করা ফলাফল পাওয়া যায়।
উদাহরণ
from itertools import chain
x = [[5,10,15,20],[25,30,35,40],[45,50,55,60]]
# Using list slicing and list comprehension
print("The Given input is : \n" + str(x))
res = list(chain(*[list((n[2:], [n[0:2]])) for n in x]))
print("Converting column to separate elements in list of lists : \n" + str(res))
আউটপুট
উপরোক্ত কোডটি রান করলে নিচের ফলাফল পাওয়া যায়:
The Given input is : [[5, 10, 15, 20], [25, 30, 35, 40], [45, 50, 55, 60]] Converting column to separate elements in list of lists : [[15, 20], [[5, 10]], [35, 40], [[25, 30]], [55, 60], [[45, 50]]]