2015-12-21 29 views
21

Tôi đang chạy tế bào này trong IPython Máy tính xách tay:IPython di động Máy tính xách tay nhiều đầu ra

# salaries and teams are Pandas dataframe 
salaries.head() 
teams.head() 

Kết quả là tôi chỉ nhận được đầu ra của teams dữ liệu-frame chứ không phải của cả hai salariesteams. Nếu tôi chỉ chạy salaries.head() tôi nhận được kết quả cho salaries khung dữ liệu nhưng khi chạy cả câu lệnh tôi chỉ thấy đầu ra của teams.head(). Làm thế nào tôi có thể sửa lỗi này?

Trả lời

45

Bạn đã thử lệnh display?

from IPython.display import display 
display(salaries.head()) 
display(teams.head()) 
+0

Wow ... Rất đẹp. Nó hoạt động chính xác như tôi muốn. – Lokesh

+1

Thực sự rất hay. –

+0

Chỉ là những gì tôi đang tìm kiếm - cảm ơn !! – saml

3

Máy tính xách tay IPython chỉ hiển thị giá trị trả lại cuối cùng trong một ô. Giải pháp đơn giản nhất cho trường hợp của bạn là sử dụng hai ô.

Nếu bạn thực sự chỉ cần một tế bào mà bạn có thể làm một Hack như thế này:

class A: 
    def _repr_html_(self): 
     return salaries.head()._repr_html_() + '</br>' + teams.head()._repr_html_() 

A() 

Nếu bạn cần điều này thường xuyên, làm cho nó một chức năng:

def show_two_heads(df1, df2, n=5): 
    class A: 
     def _repr_html_(self): 
      return df1.head(n)._repr_html_() + '</br>' + df2.head(n)._repr_html_() 
    return A() 

Cách sử dụng:

show_two_heads(salaries, teams) 

Phiên bản dành cho hơn hai đầu:

def show_many_heads(*dfs, n=5): 
    class A: 
     def _repr_html_(self): 
      return '</br>'.join(df.head(n)._repr_html_() for df in dfs) 
    return A() 

Cách sử dụng:

show_many_heads(salaries, teams, df1, df2) 
1

Cung cấp,

print salaries.head() 
teams.head() 
+1

Nice but đầu ra của 'in salaries.head()' cũng không phải là định dạng. – Lokesh

25

Một cách dễ dàng hơn:

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

Nó giúp bạn tiết kiệm phải liên tục gõ "Display"

+0

Đây có phải là mới không? Tôi không nhớ đã thấy tùy chọn này vài năm trước. – tglaria

+0

Tôi thậm chí không nhìn thấy nó trong tài liệu cập nhật: http://ipython.readthedocs.io/en/stable/api/generated/IPython.core.interactiveshell.html#IPython.core.interactiveshell.InteractiveShell Nhưng là trên các tùy chọn IPython "Terminal": http://ipython.readthedocs.io/en/stable/config/options/terminal.html – tglaria

+1

Oh người đàn ông, tôi ước tôi có thể trả lời điều đó. Tôi nhớ nhìn thấy nó trên một câu hỏi khác nhau vài tháng trước (tôi ước tôi có thể nguồn) và nó làm việc hoàn hảo cho tôi vì vậy tôi đã giữ nó trong túi sau của tôi. –

Các vấn đề liên quan