के बीच अंतर है
- सामग्री एक dataframe सेल की (एक द्विआधारी मूल्य) और
- इसकी प्रस्तुति (इसे प्रदर्शित करना) हमारे लिए, मनुष्य।
तो सवाल यह है: अपने डेटा / डेटा प्रकारों को बदलने के बिना मेरे डेटा की उपयुक्त प्रस्तुति तक कैसे पहुंचें ?
यहाँ जवाब है:
- यदि आप अपने डेटाफ्रेम को प्रदर्शित करने के लिए Jupyter नोटबुक का उपयोग करते हैं , या
- आप एक के रूप में एक प्रस्तुति पहुंचना चाहते हैं HTML फ़ाइल (यहां तक कि कई तैयार ज़रूरत से ज़्यादा के साथ
id
और class
के लिए जिम्मेदार बताते हैं आगे सीएसएस स्टाइल - आप या आप उन्हें प्रयोग नहीं हो सकता है),
स्टाइल का उपयोग करें । स्टाइलिंग आपके डेटाफ़्रेम के स्तंभों के डेटा / डेटा प्रकारों को परिवर्तित नहीं करता है।
अब मैं आपको दिखाता हूं कि इसे ज्यूपिटर नोटबुक में कैसे पहुंचा जाए - HTML फ़ाइल के रूप में प्रस्तुति के लिए नोट को प्रश्न के अंत के पास देखें।
मुझे लगता है कि आपके कॉलम में 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")}) # Don´t do this!
(हर डेटाफ़्रेम के पास अपनी .style
संपत्ति द्वारा सुलभ अपनी Styler ऑब्जेक्ट होती है , और हमने इस df.style
ऑब्जेक्ट को बदल दिया , न कि डेटाफ़्रेम को ही।)
सवाल और जवाब:
प्रश्न: आपकी स्टाइलर ऑब्जेक्ट (या इसे लौटाने वाली एक अभिव्यक्ति) का उपयोग ज्यूपिटर नोटबुक सेल में अंतिम कमांड के रूप में किया गया है जो आपकी (स्टाइल वाली) टेबल को प्रदर्शित करता है , न कि स्टाइलर ऑब्जेक्ट को?
A: क्योंकि प्रत्येक Styler ऑब्जेक्ट में कॉलबैक विधि होती है ._repr_html_()
जो आपके डेटाफ़्रेम (एक अच्छी HTML तालिका के रूप में) प्रदान करने के लिए एक HTML कोड लौटाती है।
ज्यूपिटर नोटबुक आईडीई इस पद्धति को स्वचालित रूप से उन वस्तुओं को प्रस्तुत करने के लिए कहता है जिनके पास यह है।
ध्यान दें:
आपको स्टाइलिंग के लिए जुपाइटर नोटबुक की आवश्यकता नहीं है (यानी इसके डेटा / डेटा प्रकारों को बदले बिना किसी डेटाफ़्रेम को अच्छी आउटपुट देने के लिए )।
एक Styler ऑब्जेक्ट में एक विधि है render()
, भी, यदि आप HTML कोड के साथ एक स्ट्रिंग प्राप्त करना चाहते हैं (उदाहरण के लिए वेब पर अपने स्वरूपित डेटाफ़्रेम को प्रकाशित करने के लिए, या बस अपनी तालिका को HTML प्रारूप में प्रस्तुत करें):
df_styler = df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")})
HTML_string = df_styler.render()