আপডেট: লেখার সময় উত্তর সঠিক ছিল এবং ভাসমান পয়েন্ট যথার্থতা এখনও_আসভি / রিড_সিএসভি ডিফল্টরূপে পাওয়ার মতো কিছু নয় (নির্ভুলতা-সম্পাদন ট্রেড অফ; ডিফল্ট পারফরম্যান্সের পক্ষে)।
আজকাল আছে জন্য যুক্তি প্রাপ্তিসাধ্য এবং যুক্তি জন্য উপলব্ধ ।float_format
pandas.DataFrame.to_csv
float_precision
pandas.from_csv
সমস্যার আরও ভাল করে উপলব্ধি পেতে মূলটি এখনও পড়ার মতো।
এটি পান্ডাসে একটি বাগ ছিল, কেবল "টু সিএসভি" ফাংশনে নয়, "রিড_সিএসভি" তেও। এটি কোনও সাধারণ ভাসমান বিষয় নয়, যদিও এটি সত্য যে ভাসমান পয়েন্ট গণিত একটি বিষয় যা প্রোগ্রামারের কাছ থেকে কিছু যত্ন নেওয়ার দাবি করে। নীচের এই নিবন্ধটি এই বিষয়টিকে কিছুটা স্পষ্ট করে:
http://docs.python.org/2/tutorial/floatingpoint.html
একটি ক্লাসিক ওয়ান-লাইনার যা "সমস্যা" দেখায় তা হ'ল ...
>>> 0.1 + 0.1 + 0.1
0.30000000000000004
... যা প্রত্যাশা মতো 0.3 প্রদর্শন করে না। অন্যদিকে, আপনি যদি নির্দিষ্ট পয়েন্ট পাটিগণিত ব্যবহার করে গণনা পরিচালনা করেন এবং কেবলমাত্র শেষ ধাপে আপনি ভাসমান পয়েন্ট গণিত ব্যবহার করেন তবে এটি আপনার প্রত্যাশা অনুযায়ী কাজ করবে। এটা দেখ:
>>> (1 + 1 + 1) * 1.0 / 10
0.3
আপনার যদি এই সমস্যাটি নিখুঁতভাবে নিরসনের প্রয়োজন হয় তবে আমি আপনাকে অন্য একটি সিএসভি ফাইল তৈরি করার পরামর্শ দিচ্ছি যাতে পূর্ণসংখ্যা হিসাবে সমস্ত পরিসংখ্যান রয়েছে, উদাহরণস্বরূপ 100, 1000 বা অন্যান্য ফ্যাক্টর দ্বারা গুণ করা যা সুবিধাজনক বলে প্রমাণিত হয়। আপনার অ্যাপ্লিকেশনটির অভ্যন্তরে, সিএসভি ফাইল যথারীতি পড়ুন এবং আপনি সেই পূর্ণসংখ্যার ফিগারগুলি ফিরে পাবেন। তারপরে সেই মানগুলিকে ভাসমান বিন্দুতে রূপান্তর করুন, আপনি আগে গুণক হিসাবে একই গুণকে ভাগ করে।