Hiển thị tất cả các cột khung dữ liệu trong Máy tính xách tay Jupyter Python


103

Tôi muốn hiển thị tất cả các cột trong khung dữ liệu trong Máy tính xách tay Jupyter. Jupyter hiển thị một số cột và thêm dấu chấm vào các cột cuối cùng như trong hình sau:

Ảnh chụp màn hình Juputer

Làm cách nào để hiển thị tất cả các cột?

Câu trả lời:


173

Hãy thử cài đặt max_columns hiển thị như sau:

import pandas as pd
from IPython.display import display

df = pd.read_csv("some_data.csv")
pd.options.display.max_columns = None
display(df)

Hoặc là

pd.set_option('display.max_columns', None)

Chỉnh sửa: Pandas 0.11.0 ngược

Tính năng này không được dùng nữa nhưng trong các phiên bản Pandas cũ hơn 0.11.0, max_columnscài đặt được chỉ định như sau:

pd.set_printoptions(max_columns=500)

Sẽ hoạt động trừ khi bạn có phiên bản Pandas rất cũ. Tôi đã cập nhật câu trả lời ...
Isma

4
Không thể tin rằng đây là cách để làm điều đó!
information_interchange

2
Nếu bạn muốn tạo một cài đặt tạm thời, bạn có thể sử dụng ví dụ: with pd.option_context("display.max_rows", 10, "display.max_columns", 5):(xem các tùy chọn Nhận và cài đặt ).
Benjamin B.

35

Tôi biết câu hỏi này hơi cũ nhưng câu hỏi sau đã phù hợp với tôi trong Máy tính xách tay Jupyter chạy gấu trúc 0.22.0 và Python 3:

import pandas as pd
pd.set_option('display.max_columns', <number of columns>)

Bạn cũng có thể làm tương tự cho các hàng:

pd.set_option('display.max_rows', <number of rows>)

Điều này giúp tiết kiệm việc nhập IPython và có nhiều tùy chọn hơn trong tài liệu pandas.set_option: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html


1
Bạn có thể sử dụng từ khóa None trong <số cột> nếu bạn không biết trước số cột.
kmundnic

9

Python 3.x cho DataFrames lớn (nhưng không quá lớn)

Có lẽ vì tôi có phiên bản gấu trúc cũ hơn nhưng trên sổ ghi chép Jupyter, điều này phù hợp với tôi

import pandas as pd
from IPython.core.display import HTML

df=pd.read_pickle('Data1')
display(HTML(df.to_html()))

Đã thử điều này nhưng nó đã làm hỏng phiên jupyter của tôi và mất trí nhớ. PC của tôi có SSD và bộ nhớ RAM 8 GB ...
FLBKernel

@FLBKernel nó chưa làm được điều này với tôi, có thể Dataframe của bạn lớn hơn tôi nhiều. Lối thoát của bạn là gì Bạn đã thử một phương pháp khác và hiệu quả với bạn? nếu vậy chia sẻ kiến ​​thức của bạn. Cảm ơn.
rsc05

Tôi vẫn chưa tìm thấy bất kỳ phương pháp nào, nhưng tôi sẽ cho bạn biết ngay khi tôi giải quyết được vấn đề này. Và vâng, Khung dữ liệu của tôi có lẽ lớn hơn, vì vậy hãy chỉ ra rằng điều này không được khuyến khích đối với các Khung dữ liệu lớn
FLBKernel 29/05 '19

1
@FLBKernel Khung dữ liệu của tôi cũng lớn. Nhưng tôi không biết nó có thể lớn đến mức nào. Tôi sẽ chỉ ra nó. Cảm ơn!
rsc05

Của tôi có 107,763 hàng và 15 cột. Chúng ta có thể thiết lập -có thể- rằng hơn khoảng 100k hàng và 15 cột, câu trả lời này không thể gợi ý. Tôi thích tiêu đề "lớn (nhưng không quá lớn)" :)
FLBKernel

5

Tôi khuyên bạn nên đặt các tùy chọn hiển thị bên trong trình quản lý ngữ cảnh để nó chỉ ảnh hưởng đến một đầu ra duy nhất. Nếu bạn cũng muốn in một phiên bản html "đẹp", tôi sẽ xác định một hàm và hiển thị khung dữ liệu dfbằng cách sử dụng force_show_all(df):

from IPython.core.display import display, HTML

def force_show_all(df):
    with pd.option_context('display.max_rows', None, 'display.max_columns', None, 'display.width', None):
        display(HTML(df.to_html()))

Như những người khác đã đề cập, hãy thận trọng chỉ gọi điều này trên khung dữ liệu có kích thước hợp lý.


1

bạn có thể sử dụng pandas.set_option (), đối với cột, bạn có thể chỉ định bất kỳ tùy chọn nào trong số này

pd.set_option("display.max_rows", 200)
pd.set_option("display.max_columns", 100)
pd.set_option("display.max_colwidth", 200)

Đối với cột in đầy đủ, bạn có thể sử dụng như thế này

import pandas as pd
pd.set_option('display.max_colwidth', -1)
print(words.head())

nhập mô tả hình ảnh ở đây


0

Nếu bạn muốn hiển thị tất cả các hàng được đặt như dưới đây

pd.options.display.max_rows = None

Nếu bạn muốn hiển thị tất cả các cột được đặt như dưới đây

pd.options.display.max_columns = None
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.