আমার কাছে একটি ডাটাফ্রেম রয়েছে যাতে হাজার হাজার মার্কারের জন্য কমা সহ স্ট্রিং হিসাবে সংখ্যা রয়েছে। আমার সেগুলি ফ্লোটে রূপান্তর করা দরকার।
a = [['1,200', '4,200'], ['7,000', '-0.03'], [ '5', '0']]
df=pandas.DataFrame(a)
আমি অনুমান করছি যে আমার লোকাল.আটফ ব্যবহার করা দরকার। প্রকৃতপক্ষে
df[0].apply(locale.atof)
প্রত্যাশিত হিসাবে কাজ করে। আমি একটি ধারাবাহিক ফ্লোট পাই।
তবে আমি যখন এটি ডেটাফ্রেমে প্রয়োগ করি তখন আমি একটি ত্রুটি পাই।
df.apply(locale.atof)
প্রকারের ত্রুটি: ("সিরিজটি রূপান্তর করতে পারে না", সূচক 0 'তে u'occurred)
এবং
df[0:1].apply(locale.atof)
অন্য একটি ত্রুটি দেয়:
মান মূল্য: ('ফ্লোটের জন্য অবৈধ আক্ষরিক (): 1,200', সূচক 0 তে u'occurred))
সুতরাং, আমি কীভাবে এই DataFrame
স্ট্রিংগুলিকে ফ্লোটের ডেটাফ্রেমে রূপান্তর করব ?
apply
একটি ডেটাফ্রেমে একটি পুরো কলামটি সিরিজ হিসাবে ফাংশনে সরিয়ে দেয় (এই ক্ষেত্রেlocale.atof
, যা স্ট্রিং প্রত্যাশা করে)। আপনি যদিapplymap
নীচের উত্তরে @ অ্যান্ডি হেডেন যে পদ্ধতিটি ব্যবহার করেন তবে আপনি এটি ঠিকঠাক করতে সক্ষম হবেন।