মধ্যে পার্থক্য আছে
- বিষয়বস্তু একটি dataframe কক্ষের (ক বাইনারি মান) এবং
- এটি আমাদের উপস্থাপনা (এটি প্রদর্শিত হচ্ছে) মানবদের জন্য।
সুতরাং প্রশ্নটি হল: নিজের ডেটা / ডেটা টাইপগুলি পরিবর্তন না করে আমার ডেটাসের যথাযথ উপস্থাপনাটি কীভাবে পৌঁছাবেন ?
উত্তরটি এখানে:
- আপনি যদি নিজের ডেটাফ্রেম প্রদর্শনের জন্য জুপিটার নোটবুক ব্যবহার করেন , বা
- আপনি যদি এইচটিএমএল ফাইল আকারে উপস্থাপনায় পৌঁছতে চান (এমনকি আরও কিছু সিএসএস স্টাইলিংয়ের জন্য অতিরিক্ত প্রস্তুত অতিরিক্ত অতিরিক্ত
id
এবং class
গুণাবলী সহ - আপনি সেগুলি ব্যবহার নাও করতে পারেন),
স্টাইলিং ব্যবহার করুন । স্টাইলিং আপনার ডেটাফ্রেমের কলামগুলির ডেটা / ডেটা পরিবর্তন করে না।
এখন আমি আপনাকে জুপিটার নোটবুকে এটি কীভাবে পৌঁছানোর তা দেখিয়েছি - এইচটিএমএল ফাইল আকারে উপস্থাপনার জন্য প্রশ্নের শেষে নোটটি দেখুন।
আমি অনুমান করব যে আপনার কলামে DOB
ইতিমধ্যে প্রকারটি রয়েছেdatetime64
(আপনি দেখিয়েছেন যে কীভাবে এটি পৌঁছতে হবে)। আপনাকে কিছু প্রাথমিক স্টাইলিং দেখানোর জন্য আমি একটি সাধারণ ডেটাফ্রেম (কেবল একটি কলাম সহ) প্রস্তুত করেছি:
DOB
0 2019-07-03
1 2019-08-03
2 2019-09-03
3 2019-10-03
DOB
0 07/03/2019
1 08/03/2019
2 09/03/2019
3 10/03/2019
DOB
0 03-07-2019
1 03-08-2019
2 03-09-2019
3 03-10-2019
সাবধান হও!
রিটার্নিং অবজেক্ট কোনও ডেটাফ্রেম নয় - এটি ক্লাসের একটি অবজেক্ট Styler
, তাই এটিকে আবার বরাদ্দ করবেন না df
:
এটি করবেন না:
df = df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")})
(প্রতিটি ডেটাফ্রেমের নিজস্ব স্টাইলার অবজেক্ট তার .style
সম্পত্তি দ্বারা অ্যাক্সেসযোগ্য থাকে এবং আমরা এই df.style
অবজেক্টটি পরিবর্তন করেছিলাম, ডেটাফ্রেম নিজেই নয়))
প্রশ্ন এবং উত্তর:
প্রশ্ন: কেন আপনার স্টাইলার অবজেক্ট (বা এটি প্রকাশের কোনও অভিব্যক্তি) জুপিটার নোটবুক সেলটিতে সর্বশেষ কমান্ড হিসাবে ব্যবহৃত আপনার (স্টাইলযুক্ত) টেবিলটি প্রদর্শন করে , এবং স্টাইলার অবজেক্টটি নিজেই প্রদর্শন করে না?
উত্তর: কারণ প্রতিটি স্টাইলার অবজেক্টের একটি কলব্যাক পদ্ধতি রয়েছে ._repr_html_()
যা আপনার ডেটাফ্রেম (একটি সুন্দর এইচটিএমএল টেবিল হিসাবে) উপস্থাপনের জন্য একটি এইচটিএমএল কোড দেয়।
জুপিটার নোটবুক আইডিই এই পদ্ধতিটিতে এটি থাকা বস্তুগুলি রেন্ডার করতে স্বয়ংক্রিয়ভাবে কল করে।
বিঃদ্রঃ:
স্টাইলিংয়ের জন্য আপনার জুপিটার নোটবুকের প্রয়োজন নেই (অর্থাত্ কোনও ডেটা / ডেটার প্রকারগুলি পরিবর্তন না করে কোনও ডেটা ফ্রেমের আউটপুট আউট করার জন্য )।
স্টাইলার অবজেক্টেরও একটি পদ্ধতি রয়েছে render()
, যদি আপনি এইচটিএমএল কোডের সাথে একটি স্ট্রিং পেতে চান (যেমন ওয়েবে আপনার ফরম্যাটযুক্ত ডেটা ফ্রেম প্রকাশ করার জন্য, বা কেবল আপনার টেবিলটি HTML ফর্ম্যাটে উপস্থাপন করুন):
df_styler = df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")})
HTML_string = df_styler.render()