2016-11-11 5 views
6

को jupyter सेल मैं एक jupyter नोटबुक सेल है कि इस तरह दिखता है:पॉप-आउट/विस्तार नई ब्राउज़र विंडो

enter image description here

वहाँ पॉप कोई तरीका है/(एक नई ब्राउज़र विंडो को यह बाहर का विस्तार आउटपुट इनलाइन नहीं देखते हैं)?

असल में, मैं आर/आर स्टुडियो से View() फ़ंक्शन को दोहराना चाहता हूं ... क्या यह संभव है?

+1

आप http://stackoverflow.com/questions/39977117/ipython-display-full-dataframe-in-new-tab और http://stackoverflow.com/ की तरह अस्थायी html फ़ाइलें उपयोग करने के लिए कोशिश कर सकते हैं प्रश्न/37439014/संभव-के-पांडा-डेटाफ्रेम-टू-रेंडर-इन-ए-नई-विंडो या अन्य विंडो में डेटा दिखाएं: एक्सेल, पीईक्यूटी या टिंकर http://stackoverflow.com/questions/10636024/पायथन-पांडा-गुई-फॉर-व्यू-ए-डेटाफ्रेम-या-मैट्रिक्स –

उत्तर

12

आप IPython.display से HTML द्वारा निष्पादित एक नई विंडो खोलने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं।

import pandas as pd 
import numpy as np 
df = pd.DataFrame(np.random.randn(6,4),columns=list('ABCD')) 
# Show in Jupyter 
df 

from IPython.display import HTML 
s = '<script type="text/Javascript">' 
s += 'var win = window.open("", "Title", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=780, height=200, top="+(screen.height-400)+", left="+(screen.width-840));' 
s += 'win.document.body.innerHTML = \'' + df.to_html().replace("\n",'\\') + '\';' 
s += '</script>' 

# Show in new Window 
HTML(s) 

यहाँ, df.to_HTML() जो नई-पंक्तियों में बहुत-सा डेटा फ्रेम से एक HTML स्ट्रिंग पैदा करता है। वे जावास्क्रिप्ट के लिए समस्याग्रस्त हैं। जावास्क्रिप्ट में मल्टी-लाइन तारों को ईओएल पर बैकस्लैश की आवश्यकता होती है, यही कारण है कि पाइथन को .replace() विधि के साथ HTML स्ट्रिंग को संशोधित करना है।

df /= 2 
s = '<script type="text/Javascript">' 
s += 'win.document.body.innerHTML = \'' + df.to_html().replace("\n",'\\') + '\';' 
s += '</script>' 
HTML(s) 

इस में अपनी मेज पर तत्काल प्रभाव होगा:

क्या साथ वास्तव में अच्छा है जावास्क्रिप्ट का .innerHTML (document.write() के बजाय) आप एक नई विंडो बनाने की आवश्यकता के बिना अपनी मेज किसी भी समय अपडेट कर सकते हैं खिड़की खोली बस टाइप करके

def View(df): 
    css = """<style> 
    table { border-collapse: collapse; border: 3px solid #eee; } 
    table tr th:first-child { background-color: #eeeeee; color: #333; font-weight: bold } 
    table thead th { background-color: #eee; color: #000; } 
    tr, th, td { border: 1px solid #ccc; border-width: 1px 0 0 1px; border-collapse: collapse; 
    padding: 3px; font-family: monospace; font-size: 10px }</style> 
    """ 
    s = '<script type="text/Javascript">' 
    s += 'var win = window.open("", "Title", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=780, height=200, top="+(screen.height-400)+", left="+(screen.width-840));' 
    s += 'win.document.body.innerHTML = \'' + (df.to_html() + css).replace("\n",'\\') + '\';' 
    s += '</script>' 

    return(HTML(s+css)) 

यह jupyter में काम करता है:

enter image description here

यहाँ python के लिए R से एक View() एमुलेटर का एक सरल सुझाव है

View(df) 

एक फैंसी टॉपिंग के रूप में, यह कुछ सीएसएस का उपयोग करके आपकी खुली तालिका को भी शैलियों का शैक्षिक बनाता है, जैसे कि यह बहुत अच्छा और सी दिखता है RStudio से आप जो जानते हैं उसके लिए अपरिवर्तनीय।
enter image description here

+0

। किसी भी व्यक्ति के लिए बस एक टिप जो इसे कार्यान्वित करना चाहता है: सुनिश्चित करें कि आप लोकहोस्ट पर पॉपअप को अवरुद्ध नहीं कर रहे हैं! – emehex

संबंधित मुद्दे