আমি পোস্টগ্রিজ এসকিউএল ডাটাবেসে ডেটা সংরক্ষণ করেছি। আমি পাইথন 2.7 ব্যবহার করে এই ডেটাটি অনুসন্ধান করছি এবং এটিকে একটি পান্ডাস ডেটা ফ্রেমে পরিণত করছি। যাইহোক, এই ডেটাফ্রেমের শেষ কলামটির মধ্যে মানগুলির একটি অভিধান (বা তালিকা?) রয়েছে। ডেটাফ্রেমটি দেখতে এমন দেখাচ্ছে:
[1] df
Station ID Pollutants
8809 {"a": "46", "b": "3", "c": "12"}
8810 {"a": "36", "b": "5", "c": "8"}
8811 {"b": "2", "c": "7"}
8812 {"c": "11"}
8813 {"a": "82", "c": "15"}
আমাকে এই কলামটি পৃথক কলামে বিভক্ত করতে হবে যাতে ডেটা ফ্রেমটি দেখতে এই রকম হয়:
[2] df2
Station ID a b c
8809 46 3 12
8810 36 5 8
8811 NaN 2 7
8812 NaN NaN 11
8813 82 NaN 15
আমার যে বড় সমস্যাটি হচ্ছে তা হ'ল তালিকাগুলি একই দৈর্ঘ্য নয়। তবে সমস্ত তালিকার মধ্যে একই 3 টি মান রয়েছে: ক, খ এবং গ। এবং তারা সর্বদা একই ক্রমে উপস্থিত হয় (প্রথম, খ দ্বিতীয়, সি তৃতীয়)।
নিম্নলিখিত কোডটি কাজ করতে এবং আমি যা চেয়েছিলাম ঠিক তেমন ফেরত ব্যবহার করেছে (df2)।
[3] df
[4] objs = [df, pandas.DataFrame(df['Pollutant Levels'].tolist()).iloc[:, :3]]
[5] df2 = pandas.concat(objs, axis=1).drop('Pollutant Levels', axis=1)
[6] print(df2)
আমি গত সপ্তাহে এই কোডটি চালাচ্ছিলাম এবং এটি ভাল কাজ করছিল was তবে এখন আমার কোডটি নষ্ট হয়ে গেছে এবং আমি লাইন থেকে এই ত্রুটি পেয়েছি [4]:
IndexError: out-of-bounds on slice (end)
আমি কোডটিতে কোনও পরিবর্তন করি নি তবে এখন ত্রুটিটি পাচ্ছি। আমি মনে করি এটি আমার পদ্ধতিটি দৃ rob় বা সঠিক না হওয়ার কারণে to
তালিকার এই কলামটি পৃথক কলামে কীভাবে বিভক্ত করা যায় সে সম্পর্কে কোনও পরামর্শ বা নির্দেশনা প্রশংসিত হবে!
সম্পাদনা: আমি মনে করি .টোলিস্ট () এবং। অ্যাপ্লিকেশন পদ্ধতিগুলি আমার কোডে কাজ করছে না কারণ এটি একটি ইউনিকোড স্ট্রিং, যেমন:
#My data format
u{'a': '1', 'b': '2', 'c': '3'}
#and not
{u'a': '1', u'b': '2', u'c': '3'}
এই বিন্যাসে পোস্টগ্রিজ এসকিউএল ডাটাবেস থেকে ডেটা আমদানি করা হচ্ছে। এই সমস্যাটি নিয়ে কোনও সহায়তা বা ধারণা? ইউনিকোড রূপান্তর করার কোন উপায় আছে?
iloc[:, :3]
ধরে নিয়েছে যে সেখানে 3 টি আইটেম থাকবে এবং সম্ভবত সাম্প্রতিক ডেটা স্লাইসের মধ্যে কেবল 1 বা 2 রয়েছে (উদাহরণস্বরূপ এমনটি হবে b
না index 8813
)?
iloc
অংশ