IPython नोटबुक में तालिका के रूप में DataFrame दिखाएं


245

मैं iPython नोटबुक का उपयोग कर रहा हूं। जब मैं ऐसा करता हूं:

df

मुझे कोशिकाओं के साथ एक सुंदर तालिका मिलती है। हालांकि, अगर मैं ऐसा करता हूं:

df1
df2 

यह पहली सुंदर तालिका नहीं छापता है। अगर मैं यह कोशिश करूँ:

print df1
print df2

यह एक अलग प्रारूप में तालिका को प्रिंट करता है जो स्तंभों पर फैलता है और आउटपुट को बहुत लंबा बनाता है।

वहाँ दोनों डेटासेट के लिए सुंदर तालिकाओं को मुद्रित करने के लिए मजबूर करने का एक तरीका है?


15
display(df)(साथ from IPython.display import display), याprint df.to_html()
२१

3
@ जॉरिस, आपकी टिप्पणी प्रश्न का उत्तर देती है, तो क्या आप शायद इसे उत्तर के रूप में पोस्ट कर सकते हैं, ताकि प्रश्न अनुत्तरित न रहे?
क्रिस्टियन सियुपिटु

जवाबों:


383

आपको IPython के डिस्प्ले मॉड्यूल से HTML()या display()फ़ंक्शंस का उपयोग करने की आवश्यकता होगी :

from IPython.display import display, HTML

# Assuming that dataframes df1 and df2 are already defined:
print "Dataframe 1:"
display(df1)
print "Dataframe 2:"
display(HTML(df2.to_html()))

ध्यान दें कि यदि आप अभी print df1.to_html()कच्चे, अनरेटेड HTML प्राप्त करेंगे।

आप IPython.core.displayउसी प्रभाव से आयात भी कर सकते हैं


3
क्या अजगर से स्वचालित रूप से ब्राउज़र खोलने और दिखाने के लिए कहना संभव है HTML(df2.to_html())?
सीना

@ सीना आपको एक फ़ाइल में HTML लिखने में सक्षम होना चाहिए, और फिर उस फ़ाइल पर अपने पसंदीदा ब्राउज़र को कॉल करना चाहिए, लेकिन ऐसा कैसे करना है यह उस सिस्टम पर बहुत निर्भर करता है जो आप ब्राउज़र पर हैं, आदि
nealmcb

2
HTML (df2.to_html ()) कुछ नहीं करता है। आपको डेटाफ़्रेम रेंडर करने के लिए डिस्प्ले (HTML (df2.to_html ())) करना चाहिए। मैंने आपके उत्तर को संपादित करने की कोशिश की लेकिन किसी तरह इसे अस्वीकार कर दिया गया।
एलैक्सी

8
संस्करण 5.6.0 पर आप की जरूरत नहीं हैimport display
joelb

संघटित तारों से कैसे निपटें? उदाहरण के लिए टेक्स्ट कॉलम से सभी पाठ प्राप्त करने के लिए।
पीटर.के

51
from IPython.display import display
display(df)  # OR
print df.to_html()

5
जैसा कि @emunsing, .to_html () द्वारा कहा गया है, यह काम नहीं करता है, यह अप्रतिबंधित HTML तालिका देता है।
मयंक

44

यह उत्तर इस ब्लॉग पोस्ट के 2 टिप पर आधारित है: 28 Jupyter नोटबुक टिप्स, ट्रिक्स और शॉर्टकट

आप निम्न कोड को अपनी नोटबुक के शीर्ष पर जोड़ सकते हैं

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

यह Jupyter को किसी भी चर या स्टेटमेंट के लिए परिणाम प्रिंट करने के लिए कहता है। तो आप पूरी तरह से युक्त सेल को निष्पादित कर सकते हैं

df1
df2

और यह "दोनों डेटासेट के लिए सुंदर तालिकाओं को प्रिंट करेगा"।


3
यह समाधान खूबसूरती से काम करता है और पूछे गए मूल समस्या को हल करता है। धन्यवाद!
ज़र्ट्रिन

16

मैं HTML के साथ खिलवाड़ नहीं करना पसंद करता हूं और जितना संभव हो सके देशी अवसंरचना का उपयोग करता हूं। आप HOX या VBox के साथ आउटपुट विजेट का उपयोग कर सकते हैं:

import ipywidgets as widgets
from IPython import display
import pandas as pd
import numpy as np

# sample data
df1 = pd.DataFrame(np.random.randn(8, 3))
df2 = pd.DataFrame(np.random.randn(8, 3))

# create output widgets
widget1 = widgets.Output()
widget2 = widgets.Output()

# render in output widgets
with widget1:
    display.display(df1)
with widget2:
    display.display(df2)

# create HBox
hbox = widgets.HBox([widget1, widget2])

# render hbox
hbox

यह आउटपुट:

यहां छवि विवरण दर्ज करें


5

ऐसा लगता है कि आप प्रदर्शन के बीच में अल्पविराम का उपयोग करके दोनों dfs को प्रदर्शित कर सकते हैं। मैंने गीथब पर कुछ नोटबुक्स पर इस पर ध्यान दिया। यह कोड Jake VanderPlas की नोटबुक से है।

class display(object):
    """Display HTML representation of multiple objects"""
    template = """<div style="float: left; padding: 10px;">
    <p style='font-family:"Courier New", Courier, monospace'>{0}</p>{1}
    </div>"""
    def __init__(self, *args):
        self.args = args

    def _repr_html_(self):
        return '\n'.join(self.template.format(a, eval(a)._repr_html_())
                     for a in self.args)

    def __repr__(self):
        return '\n\n'.join(a + '\n' + repr(eval(a))
                       for a in self.args)

display('df', "df2")


1

Jupyter नोटबुक में DataFrame दिखाने के लिए बस टाइप करें:

   प्रदर्शन (Name_of_the_DataFrame)

उदाहरण के लिए:

  प्रदर्शन (DF)

0

किसी सूची में शामिल डेटाफ़्रेम प्रदर्शित करने के लिए:

display(*dfs)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.