2017-05-21 56 views
8

Bir pandans modülü oluşturmak için DataFrame (my_df) pandaları görüntülemek üzere bir işlev oluşturuyorum. Kullanıcı bir Jupyter notebook içine modülü ithal ediyorsaJupyter defterinde olup olmadığınızı nasıl kontrol edersiniz

, şöyle bir şey kullanarak "hoş" DataFrame biçimlendirme teslim etmek isteyeyim: Kullanıcının bir Jupyter defterine değilse,

from IPython.display import display, HTML 
display(my_df) 

Ben kod Jupyter not defterinden çalıştırılıyorsa

print(my_df) 

nasıl kontrol edebilirim: DataFrame metin biçimini göstermek ister ki? Veya, DataFrame'i komut satırından metin biçiminde nasıl görüntüleyebilirim ve bir Jupyter not defterine aktarılırsa HTML formunu nasıl görüntüleyebilirim?

from IPython.display import display, HTML 

def my_func(my_df): 
    if [... code to check for Jupyter notebook here ...]: 
     display(my_df) 
    else: 
     print(my_df) 

cevap

6

görebiliyorum; display(), komut satırından çağrıldığında metni yazdırır.

test.py: Bir Jupyter Notebook itibaren

$ python test.py 
    bar foo 
0 7 1 
1 8 2 
2 9 3 

: Komut satırından

from IPython.display import display 
import pandas as pd 

my_df = pd.DataFrame({'foo':[1,2,3],'bar':[7,8,9]}) 
display(my_df) 

notebook printout

GÜNCELLEME
Etkileşimli bir Ipython kabuğunda (komut satırı veya tarayıcı tabanlı) çalışıp çalışmadığınızı kontrol etmek için get_ipython'a bakın.

test.py Modifiye (Ipython docs uyarlanmıştır):

from IPython.display import display, HTML 
import pandas as pd 
my_df = pd.DataFrame({'foo':[1,2,3],'bar':[7,8,9]}) 

try: 
    get_ipython 
    display(my_df) 
except: 
    print(my_df) 

Bu yaklaşım olacaktır:
- komut satırından bir komut dosyası olarak çalıştırmak baskı metin - bir tarayıcı Jupyter dizüstü
oldukça desenli (örn. python test.py)
- Bir Python kabuğunda satır satır koşuyorsa,

+0

Etkileşimli bir python kabuğunda, tüm kabuğun bir Jupyter dizüstü bilgisayar stili CLI'ye dönüşür. – mgoldwasser

+0

Bu doğru - yayınınızda etkileşimli bir python kabuğundan koşmaktan bahsetmediniz. Basit bir komut satırından istediği gibi çalışır. –

+0

Etkileşimli CLI sorununu gidermek için güncellenmiş yanıtıma bakın. –

0

Os.environ'a bakmalısınız. Benim makinede

sen Kodun bir Notebook çalıştırılan olup olmadığını kontrol etmek gerekmez

os.environ['_'] 
+0

Yazdırıldıktan sonra etkileşimli bir Ipython kabuğuna dönüşmez. Bazı kabuklar _ son işlem koşulu olarak belirlenebilir. Bu işe yarayabilir, gerçekten güvenilir değil ve bundan daha iyi bir cevabın olduğundan şüpheleniyorum. –