Làm cách nào để mở rộng hiển thị đầu ra để xem thêm các cột của DataFrame gấu trúc?


622

Có cách nào để mở rộng hiển thị đầu ra ở chế độ tương tác hoặc thực thi tập lệnh không?

Cụ thể, tôi đang sử dụng describe()chức năng trên một con gấu trúc DataFrame. Khi rộng DataFrame5 cột (nhãn), tôi nhận được số liệu thống kê mô tả mà tôi muốn. Tuy nhiên, nếu DataFramecó thêm bất kỳ cột nào, số liệu thống kê sẽ bị loại bỏ và một cái gì đó như thế này được trả về:

>> Index: 8 entries, count to max  
>> Data columns:  
>> x1          8  non-null values  
>> x2          8  non-null values  
>> x3          8  non-null values  
>> x4          8  non-null values  
>> x5          8  non-null values  
>> x6          8  non-null values  
>> x7          8  non-null values  

Giá trị "8" được đưa ra cho dù có 6 hay 7 cột. "8" đề cập đến điều gì?

Tôi đã thử kéo cửa sổ IDLE lớn hơn, cũng như tăng các tùy chọn chiều rộng "Cấu hình IDLE", nhưng không có kết quả.

Mục đích của tôi trong việc sử dụng gấu trúc và describe()là để tránh sử dụng chương trình thứ hai như Stata để thực hiện thao tác và điều tra dữ liệu cơ bản.

Câu trả lời:


888

Cập nhật: Pandas 0.23.4 trở đi

Điều này là không cần thiết, gấu trúc tự động phát hiện kích thước của cửa sổ đầu cuối của bạn nếu bạn đặt pd.options.display.width = 0. (Đối với các phiên bản cũ hơn, hãy xem ở phía dưới.)

pandas.set_printoptions(...)bị phản đối Thay vào đó, sử dụng pandas.set_option(optname, val), hoặc tương đương pd.options.<opt.hierarchical.name> = val. Giống:

import pandas as pd
pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)

Đây là sự giúp đỡ choset_option :

set_option (pat, value) - Đặt giá trị của tùy chọn đã chỉ định

Tùy chọn có sẵn:
hiển thị. [chop_thr Ngưỡng, colheader_justify, cột_space, date_dayfirst,
         date_yearfirst, mã hóa, extend_frame_Vpr, float_format, height,
         line_ thong, max_columns, max_col thong, max_info_columns, max_info_rows,
         max_rows, max_seq_items, mpl_style, multi_spude, notebook_Vpr_html,
         pprint_nest_depth, độ chính xác, chiều rộng]
chế độ. [sim_interactive, use_inf_as_null]

Thông số
----------
pat - str / regapi sẽ phù hợp với một tùy chọn duy nhất.

Lưu ý: kết hợp một phần được hỗ trợ để thuận tiện, nhưng trừ khi bạn sử dụng
tên tùy chọn đầy đủ (egxyzoption_name), mã của bạn có thể bị hỏng trong tương lai
phiên bản nếu tùy chọn mới có tên tương tự được giới thiệu.

giá trị - giá trị mới của tùy chọn.

Trả về
-------
không ai

Tăng
------
KeyError nếu không có tùy chọn như vậy tồn tại

display.chop_thr Ngưỡng: [mặc định: Không] [hiện tại: Không]
: phao hoặc không
        nếu được đặt thành giá trị float, tất cả các giá trị float nhỏ hơn ngưỡng đã cho
        sẽ được hiển thị chính xác là 0 bởi repr và bạn bè.
display.colheader_justify: [default: right] [hiện tại: phải]
: 'trái phải'
        Kiểm soát sự biện minh của các tiêu đề cột. được sử dụng bởi DataFrameFormatter.
display.column_space: [default: 12] [hiện tại: 12] Không có mô tả nào.

display.date_dayfirst: [default: Sai] [hiện tại: Sai]
: boolean
        Khi True, in và phân tích ngày tháng với ngày đầu tiên, ví dụ: 20/01/2005
display.date_yearfirst: [default: Sai] [hiện tại: Sai]
: boolean
        Khi True, in và phân tích ngày tháng với năm đầu tiên, ví dụ: 2005/01/20
display.encoding: [default: UTF-8] [hiện tại: UTF-8]
: str / unicode
        Mặc định cho mã hóa được phát hiện của giao diện điều khiển.
        Chỉ định mã hóa được sử dụng cho các chuỗi được trả về bởi to_opes,
        đây thường là các chuỗi có nghĩa là được hiển thị trên bàn điều khiển.
display.Exand_frame_Vpr: [default: True] [hiện tại: True]
: boolean
        Có in ra toàn bộ repr DataFrame cho DataFrames rộng không
        trên nhiều dòng, `max_columns` vẫn được tôn trọng, nhưng đầu ra sẽ
        bao quanh nhiều "trang" nếu chiều rộng của nó vượt quá `display. thong`.
display.float_format: [default: Không] [hiện tại: Không]
: có thể gọi được
        Các cuộc gọi nên chấp nhận một số dấu phẩy động và trả về
        một chuỗi với định dạng mong muốn của số. Cái này được sử dụng
        ở một số nơi như SeriesFormatter.
        Xem core.format.EngFormatter để biết ví dụ.
display.height: [default: 60] [hiện tại: 1000]
: int
        Không dùng nữa
        (Không dùng nữa, thay vào đó hãy sử dụng `display.height`.)

display.line_ thong: [default: 80] [hiện tại: 1000]
: int
        Không dùng nữa
        (Không dùng nữa, thay vào đó hãy sử dụng `display. Thong`.)

display.max_columns: [default: 20] [hiện tại: 500]
: int
        max_rows và max_columns được sử dụng trong các phương thức __Vpr __ () để quyết định xem
        to_opes () hoặc information () được sử dụng để kết xuất một đối tượng thành một chuỗi. Trong trường hợp
        python / IPython đang chạy trong một thiết bị đầu cuối, điều này có thể được đặt thành 0 và gấu trúc
        sẽ tự động phát hiện chính xác chiều rộng của thiết bị đầu cuối và hoán đổi thành nhỏ hơn
        định dạng trong trường hợp tất cả các cột sẽ không phù hợp theo chiều dọc. Máy tính xách tay IPython,
        IPython qtconsole hoặc IDLE không chạy trong thiết bị đầu cuối và do đó nó không phải là
        có thể làm tự động phát hiện chính xác.
        Giá trị 'Không' có nghĩa là không giới hạn.
display.max_colference: [default: 50] [hiện tại: 50]
: int
        Độ rộng tối đa tính bằng ký tự của cột trong repr của
        một cấu trúc dữ liệu gấu trúc. Khi cột tràn, một "..."
        giữ chỗ được nhúng trong đầu ra.
display.max_info_columns: [default: 100] [hiện tại: 100]
: int
        max_info_columns được sử dụng trong phương thức DataFrame.info để quyết định xem
        thông tin trên mỗi cột sẽ được in.
display.max_info_rows: [default: 1690785] [hiện tại: 1690785]
: int hoặc Không
        max_info_rows là số lượng hàng tối đa mà một khung sẽ
        thực hiện kiểm tra null trên các cột của nó khi đăng nhập vào bảng điều khiển.
        Mặc định là 1.000.000 hàng. Vì vậy, nếu DataFrame có nhiều hơn
        1.000.000 hàng sẽ không có kiểm tra null được thực hiện trên
        các cột và do đó việc biểu diễn sẽ mất ít thời gian hơn để
        hiển thị trong một phiên tương tác. Giá trị Không có nghĩa là luôn luôn
        thực hiện kiểm tra null khi repr'ing.
display.max_rows: [default: 60] [hiện tại: 500]
: int
        Điều này đặt số lượng gấu trúc hàng tối đa sẽ xuất khi in
        đầu ra khác nhau. Ví dụ: giá trị này xác định xem repr ()
        cho một khung dữ liệu in ra đầy đủ hoặc chỉ là một bản tóm tắt.
        Giá trị 'Không' có nghĩa là không giới hạn.
display.max_seq_items: [default: Không] [hiện tại: Không]
: int hoặc Không

        khi in đẹp một chuỗi dài, không còn nữa `max_seq_items`
        sẽ được in Nếu các mục bị hủy bỏ, chúng sẽ được biểu thị bằng phép cộng
        của "..." cho chuỗi kết quả.

        Nếu được đặt thành Không, số lượng mục sẽ được in là không giới hạn.
display.mpl_style: [default: Không] [hiện tại: Không]
: bool

        Đặt cài đặt này thành 'mặc định' sẽ sửa đổi các RCParams được sử dụng bởi matplotlib
        để cung cấp cho cốt truyện một phong cách trực quan dễ chịu hơn theo mặc định.
        Đặt giá trị này thành Không / Sai khôi phục các giá trị về giá trị ban đầu của chúng.
display.multi_spzzy: [default: True] [hiện tại: True]
: boolean
        Hiển thị Multi Index "sparsify" (không hiển thị lặp lại
        các yếu tố ở cấp độ bên ngoài trong nhóm)
display.notebook_Vpr_html: [default: True] [hiện tại: True]
: boolean
        Khi True, máy tính xách tay IPython sẽ sử dụng đại diện html cho
        đối tượng gấu trúc (nếu có).
display.pprint_nest_depth: [default: 3] [hiện tại: 3]
: int
        Kiểm soát số lượng các mức lồng nhau để xử lý khi in đẹp
display.precision: [default: 7] [hiện tại: 7]
: int
        Độ chính xác đầu ra dấu phẩy động (số chữ số có nghĩa). Đây là
        chỉ một đề nghị
display.creen: [default: 80] [hiện tại: 1000]
: int
        Chiều rộng của màn hình hiển thị trong các ký tự. Trong trường hợp python / IPython đang chạy
        một thiết bị đầu cuối này có thể được đặt thành Không và gấu trúc sẽ tự động phát hiện chính xác
        chiều rộng.
        Lưu ý rằng sổ ghi chép IPython, IPython qtconsole hoặc IDLE không chạy trong
        thiết bị đầu cuối và do đó không thể phát hiện chính xác chiều rộng.
mode.sim_interactive: [default: Sai] [hiện tại: Sai]
: boolean
        Có mô phỏng chế độ tương tác cho mục đích thử nghiệm không
mode.use_inf_as_null: [default: Sai] [hiện tại: Sai]
: boolean
        Đúng nghĩa là coi Không, NaN, INF, -INF là null (cách cũ),
        Sai có nghĩa là Không và NaN là null, nhưng INF, -INF không null
        (cách mới).
Gọi def: pd.set_option (tự, * args, ** kwds)

EDIT: thông tin phiên bản cũ hơn, phần lớn trong số này đã bị phản đối.

Như @bmu đã đề cập , gấu trúc tự động phát hiện (theo mặc định) kích thước của khu vực hiển thị, chế độ xem tóm tắt sẽ được sử dụng khi một đối tượng repr không vừa trên màn hình. Bạn đã đề cập thay đổi kích thước cửa sổ IDLE, không có hiệu lực. Nếu bạn làm print df.describe().to_string()nó phù hợp trên cửa sổ IDLE?

Kích thước thiết bị đầu cuối được xác định bởi pandas.util.terminal.get_terminal_size()(không dùng nữa và bị loại bỏ), điều này trả về một tuple chứa (width, height)màn hình. Đầu ra có khớp với kích thước cửa sổ IDLE của bạn không? Có thể có một vấn đề (đã có một vấn đề trước đây khi chạy một thiết bị đầu cuối trong emacs).

Lưu ý rằng có thể bỏ qua tự động phát hiện, pandas.set_printoptions(max_rows=200, max_columns=10)sẽ không bao giờ chuyển sang chế độ xem tóm tắt nếu số lượng hàng, cột không vượt quá giới hạn đã cho.


Tùy chọn 'max_col thong' giúp nhìn thấy hình thức không bị cắt của mỗi cột.

TruncatedColumnDisplay


4
display.height: không dùng nữa, display.heightthay vào đó hãy sử dụng ... Tôi đang ở trong vòng lặp chết.
Ngọn lửa đông lạnh

5
Ngày nay tùy chọn này cũng có thể được thiết lập như là tập các thuộc tính củapd.options , ví dụ:pd.options.display.max_rows = 999
unutbu

2
Thuộc tính 'display.height' không được dùng nữa.
Greg M. Krsak 22/03/2016

2
Không làm việc cho tôi trong Pandas 0.23.2.
devinbost

6
Bạn có thể muốn sử dụng tùy chọn_context để các thay đổi tùy chọn là cục bộ với thứ bạn đang làm việc. Điều này ngăn việc vô tình in ra 400 trang rác trong cuộc gọi tiếp theo của bạn .head()hoặc bất cứ điều gì.
Mike Williamson

195

Thử cái này:

pd.set_option('display.expand_frame_repr', False)

Từ tài liệu:

display.Exand_frame_Vpr: boolean

Có in ra toàn bộ DataFrame repr cho các DataFram rộng trên nhiều dòng hay không, max_columns vẫn được tôn trọng, nhưng đầu ra sẽ bao quanh nhiều trang khác nhau, nếu độ rộng của nó vượt quá hiển thị. [mặc định: Đúng] [hiện tại: Đúng]

Xem: http://pandas.pydata.org/pandas-docs/urdy/generated/pandas.set_option.html


6
Cái này làm việc cho tôi Có vẻ như gấu trúc tính toán sai chiều rộng đầu ra vì một số lý do và phá vỡ các cột không cần thiết.
zbyszek 24/07/2015

5
Tôi thực sự phải làm điều này mỗi ngày ... Có cách nào để đặt cái này trên toàn cầu ở đâu đó không?
citynorman

1
@citynorman xem pandas\core\config_init.pyđể đặt nó vĩnh viễn.
Jarad

106

Nếu bạn muốn đặt tùy chọn tạm thời để hiển thị một DataFrame lớn, bạn có thể sử dụng tùy chọn_context :

with pd.option_context('display.max_rows', None, 'display.max_columns', None):
    print (df)

Giá trị tùy chọn được khôi phục tự động khi bạn thoát khỏi withkhối.


3
Để không đặt giới hạn, Nonecó thể được sử dụng (thay vì 999, v.v.).
Eric O Lebigot

5
with pd.option_context('display.max_rows', None, 'display.max_columns', None): print(energy)đã không làm việc. Nó không thay đổi số lượng cột tôi muốn xem. Tuy nhiên, giải pháp của Wouter Overmeiere đã làm việc.
Aziz Javed

Nhưng có sự khác biệt, cần một số số như -1hoặc 500, không Không.
jezrael

2
Sử dụng -1 sự cố và 500 cũng không làm gì cả
Aziz Javed

1
+1 để đề xuất trình quản lý bối cảnh, nhưng -1 cho max_rowsgiá trị;). Đặt 'display.max_rows'thành -1 dường như làm rối loạn định dạng hoàn toàn (đối với dữ liệu của tôi không gặp sự cố, nhưng hiện tại nó sẽ in một số hàng nhất định nhiều lần).
bluenote10

88

Chỉ sử dụng 3 dòng này làm việc cho tôi:

pd.set_option('display.max_columns', None)  
pd.set_option('display.expand_frame_repr', False)
pd.set_option('max_colwidth', -1)

Anaconda / Python 3.6.5 / gấu trúc: 0.23.0 / Mã Visual Studio 1.26


54

Đặt chiều rộng tối đa của cột bằng:

pd.set_option('max_colwidth', 800)

Câu lệnh cụ thể này đặt chiều rộng tối đa là 800px, mỗi cột.


2
Cuộn xuống theo thứ tự phiếu giảm dần, đây là câu trả lời đầu tiên giúp tôi có được gấu trúc để không cắt bớt đầu ra văn bản gốc của DataFrames. (gấu trúc 0,22, iTerm2 3.0.13, OS X 10.12).
Peter Leimbigler

2
Đây là người duy nhất làm việc cho tôi cho Pandas 0.23.2.
devinbost

1
Tại sao bạn không phải xác định nó là display.max_colwidth? Đó là cách nó được liệt kê trong tài liệu. Tôi đồng ý rằng chỉ max_colwidthhoạt động và ngắn hơn để viết, nhưng tôi đã ngạc nhiên.
cmo

26

Bạn có thể sử dụng print df.describe().to_string()để buộc nó hiển thị toàn bộ bảng. (Bạn có thể sử dụng to_string()như thế này cho bất kỳ DataFrame nào. Kết quả củadescribe nó chỉ là một DataFrame.)

8 là số lượng hàng trong DataFrame giữ "mô tả" (vì describetính 8 thống kê, tối thiểu, tối đa, trung bình, v.v.).


26

Bạn có thể điều chỉnh tùy chọn in gấu trúc với set_printoptions.

In [3]: df.describe()
Out[3]: 
<class 'pandas.core.frame.DataFrame'>
Index: 8 entries, count to max
Data columns:
x1    8  non-null values
x2    8  non-null values
x3    8  non-null values
x4    8  non-null values
x5    8  non-null values
x6    8  non-null values
x7    8  non-null values
dtypes: float64(7)

In [4]: pd.set_printoptions(precision=2)

In [5]: df.describe()
Out[5]: 
            x1       x2       x3       x4       x5       x6       x7
count      8.0      8.0      8.0      8.0      8.0      8.0      8.0
mean   69024.5  69025.5  69026.5  69027.5  69028.5  69029.5  69030.5
std       17.1     17.1     17.1     17.1     17.1     17.1     17.1
min    69000.0  69001.0  69002.0  69003.0  69004.0  69005.0  69006.0
25%    69012.2  69013.2  69014.2  69015.2  69016.2  69017.2  69018.2
50%    69024.5  69025.5  69026.5  69027.5  69028.5  69029.5  69030.5
75%    69036.8  69037.8  69038.8  69039.8  69040.8  69041.8  69042.8
max    69049.0  69050.0  69051.0  69052.0  69053.0  69054.0  69055.0

Tuy nhiên, điều này sẽ không hoạt động trong mọi trường hợp vì gấu trúc phát hiện chiều rộng bàn điều khiển của bạn và nó sẽ chỉ sử dụng to_stringnếu đầu ra vừa với bàn điều khiển (xem chuỗi doc của set_printoptions). Trong trường hợp này, bạn có thể gọi một cách rõ ràng to_stringnhư được trả lời bởi BrenBarn .

Cập nhật

Với phiên bản 0.10, cách thức dữ liệu rộng được thay đổi :

In [3]: df.describe()
Out[3]: 
                 x1            x2            x3            x4            x5  \
count      8.000000      8.000000      8.000000      8.000000      8.000000   
mean   59832.361578  27356.711336  49317.281222  51214.837838  51254.839690   
std    22600.723536  26867.192716  28071.737509  21012.422793  33831.515761   
min    31906.695474   1648.359160     56.378115  16278.322271     43.745574   
25%    45264.625201  12799.540572  41429.628749  40374.273582  29789.643875   
50%    56340.214856  18666.456293  51995.661512  54894.562656  47667.684422   
75%    75587.003417  31375.610322  61069.190523  67811.893435  76014.884048   
max    98136.474782  84544.484627  91743.983895  75154.587156  99012.695717   

                 x6            x7  
count      8.000000      8.000000  
mean   41863.000717  33950.235126  
std    38709.468281  29075.745673  
min     3590.990740   1833.464154  
25%    15145.759625   6879.523949  
50%    22139.243042  33706.029946  
75%    72038.983496  51449.893980  
max    98601.190488  83309.051963  

Hơn nữa API để thiết lập tùy chọn gấu trúc đã thay đổi:

In [4]: pd.set_option('display.precision', 2)

In [5]: df.describe()
Out[5]: 
            x1       x2       x3       x4       x5       x6       x7
count      8.0      8.0      8.0      8.0      8.0      8.0      8.0
mean   59832.4  27356.7  49317.3  51214.8  51254.8  41863.0  33950.2
std    22600.7  26867.2  28071.7  21012.4  33831.5  38709.5  29075.7
min    31906.7   1648.4     56.4  16278.3     43.7   3591.0   1833.5
25%    45264.6  12799.5  41429.6  40374.3  29789.6  15145.8   6879.5
50%    56340.2  18666.5  51995.7  54894.6  47667.7  22139.2  33706.0
75%    75587.0  31375.6  61069.2  67811.9  76014.9  72039.0  51449.9
max    98136.5  84544.5  91744.0  75154.6  99012.7  98601.2  83309.1

Tôi thích sử dụng phương thức max_columns được đề cập bởi lodagro, nhưng tôi rất vui vì bạn đã đề cập đến từ khóa chính xác vì điều đó sẽ giúp làm sạch các số liệu thống kê được hiển thị. Cảm ơn!
củ cải

22

Bạn có thể đặt màn hình đầu ra khớp với chiều rộng thiết bị đầu cuối hiện tại của mình:

pd.set_option('display.width', pd.util.terminal.get_terminal_size()[0])

6
@ wouter-overmeire nói rằng gấu trúc thực hiện điều này một cách tự động , nhưng dường như đó không phải là trường hợp, ít nhất là không phải với 0.18.0. Tuy nhiên, nếu bạn sử dụng pd.set_option('display.width', None)trong một thiết bị đầu cuối, "gấu trúc sẽ tự động phát hiện chính xác chiều rộng" .
Matthias Fripp

Chính xác! Nó không làm điều đó theo mặc định. Đặt nó vào Không, nó chỉ bỏ qua chiều rộng. Có lẽ đó là một lỗi trong Pandas hoặc có thể nó liên quan đến thiết bị đầu cuối gnome ..? Cảm ơn Wilfred Hughes!
nguy hiểm89

3
AttributionError: mô-đun 'pandas.util' không có thuộc tính 'thiết bị đầu cuối'
Bhishan Poudel

1
@BhishanPoudel Bạn có thể làm điều này thay vào đó:pd.options.display.width = None
SebMa

1
@BhishanPoudel Câu trả lời này đã được vài năm và tôi gặp vấn đề tương tự như bạn. Khi viết bài này, sử dụng phiên bản gấu trúc 0.23.1, mô-đun hiện tạipd.io.formats.terminal.get_terminal_size()
Ajay

13

Theo các tài liệu cho v0.18.0 , nếu bạn đang chạy trên thiết bị đầu cuối (không phải là máy tính xách tay iPython, qtconsole hoặc IDLE), thì đó là 2 lớp để Pandas tự động phát hiện chiều rộng màn hình của bạn và thích nghi với số lượng các cột nó hiển thị:

pd.set_option('display.large_repr', 'truncate')
pd.set_option('display.max_columns', 0)

1
Điều này làm việc cho tôi, cảm ơn bạn! Tôi đang sử dụng Pandas 0.22.0 (muộn nhất là vào ngày 8 tháng 2 năm 2018) bằng ứng dụng Terminal tích hợp trên OS X 10.11.6
Greg Sadetsky

8

Có vẻ như tất cả các câu trả lời trên giải quyết vấn đề. Một điểm nữa: thay vì pd.set_option('option_name'), bạn có thể sử dụng (tự động hoàn thành có thể)

pd.options.display.width = None

Xem tài liệu Pandas: Tùy chọn và Cài đặt:

Các tùy chọn có đầy đủ các kiểu chấm rải rác, tên không phân biệt chữ hoa chữ thường (ví dụ display.max_rows). Bạn có thể nhận / đặt tùy chọn trực tiếp làm thuộc tính của optionsthuộc tính cấp cao nhất :

In [1]: import pandas as pd

In [2]: pd.options.display.max_rows
Out[2]: 15

In [3]: pd.options.display.max_rows = 999

In [4]: pd.options.display.max_rows
Out[4]: 999

[...]

cho các thông số max_...:

max_rowsmax_columnsđược sử dụng trong __repr__()các phương thức để quyết định xem to_string()hoặc info()được sử dụng để kết xuất một đối tượng thành một chuỗi. Trong trường hợp python / IPython đang chạy trong một thiết bị đầu cuối, điều này có thể được đặt thành 0 và gấu trúc sẽ tự động phát hiện chính xác chiều rộng của thiết bị đầu cuối và trao đổi sang định dạng nhỏ hơn trong trường hợp tất cả các cột không khớp theo chiều dọc. Máy tính xách tay IPython, IPython qtconsole hoặc IDLE không chạy trong thiết bị đầu cuối và do đó không thể thực hiện tự động phát hiện chính xác. ' None' Giá trị có nghĩa là không giới hạn. [nhấn mạnh không có trong bản gốc]

cho thông số width:

Chiều rộng của màn hình hiển thị trong các ký tự. Trong trường hợp python / IPython đang chạy trong một thiết bị đầu cuối, điều này có thể được đặt thành Nonevà gấu trúc sẽ tự động phát hiện chính xác chiều rộng. Lưu ý rằng máy tính xách tay IPython, IPython qtconsole hoặc IDLE không chạy trong thiết bị đầu cuối và do đó không thể phát hiện chính xác chiều rộng.


5
import pandas as pd
pd.set_option('display.max_columns', 100)
pd.set_option('display.width', 1000)

SentenceA = "William likes Piano and Piano likes William"
SentenceB = "Sara likes Guitar"
SentenceC = "Mamoosh likes Piano"
SentenceD = "William is a CS Student"
SentenceE = "Sara is kind"
SentenceF = "Mamoosh is kind"


bowA = SentenceA.split(" ")
bowB = SentenceB.split(" ")
bowC = SentenceC.split(" ")
bowD = SentenceD.split(" ")
bowE = SentenceE.split(" ")
bowF = SentenceF.split(" ")

# Creating a set consisted of all words

wordSet = set(bowA).union(set(bowB)).union(set(bowC)).union(set(bowD)).union(set(bowE)).union(set(bowF))
print("Set of all words is: ", wordSet)

# Initiating dictionary with 0 value for all BOWs

wordDictA = dict.fromkeys(wordSet, 0)
wordDictB = dict.fromkeys(wordSet, 0)
wordDictC = dict.fromkeys(wordSet, 0)
wordDictD = dict.fromkeys(wordSet, 0)
wordDictE = dict.fromkeys(wordSet, 0)
wordDictF = dict.fromkeys(wordSet, 0)

for word in bowA:
    wordDictA[word] += 1
for word in bowB:
    wordDictB[word] += 1
for word in bowC:
    wordDictC[word] += 1
for word in bowD:
    wordDictD[word] += 1
for word in bowE:
    wordDictE[word] += 1
for word in bowF:
    wordDictF[word] += 1

# Printing Term frequency

print("SentenceA TF: ", wordDictA)
print("SentenceB TF: ", wordDictB)
print("SentenceC TF: ", wordDictC)
print("SentenceD TF: ", wordDictD)
print("SentenceE TF: ", wordDictE)
print("SentenceF TF: ", wordDictF)

print(pd.DataFrame([wordDictA, wordDictB, wordDictB, wordDictC, wordDictD, wordDictE, wordDictF]))

Ra ngoài:

   CS  Guitar  Mamoosh  Piano  Sara  Student  William  a  and  is  kind  likes
0   0       0        0      2     0        0        2  0    1   0     0      2
1   0       1        0      0     1        0        0  0    0   0     0      1
2   0       1        0      0     1        0        0  0    0   0     0      1
3   0       0        1      1     0        0        0  0    0   0     0      1
4   1       0        0      0     0        1        1  1    0   1     0      0
5   0       0        0      0     1        0        0  0    0   1     1      0
6   0       0        1      0     0        0        0  0    0   1     1      0

Bạn chỉ cần hai: (Kiểm tra ví dụ trên) gấu trúc nhập khẩu theo pd pd.set_option ( 'display.max_columns', 100) pd.set_option ( 'display.width', 1000)
William Pourmajidi

4

Tôi đã sử dụng các cài đặt này khi quy mô dữ liệu cao.

# environment settings: 
pd.set_option('display.max_column',None)
pd.set_option('display.max_rows',None)
pd.set_option('display.max_seq_items',None)
pd.set_option('display.max_colwidth', 500)
pd.set_option('expand_frame_repr', True)

Bạn có thể tham khảo tài liệu ở đây


4

Dòng dưới đây là đủ để hiển thị tất cả các cột từ khung dữ liệu. pd.set_option('display.max_columns', None)


1
Chào mừng đến với SO! Khi bạn đăng câu trả lời mới cho câu hỏi và có thêm một số câu trả lời, hãy thử hiển thị Ưu điểm. Vẫn còn một câu trả lời pd.set_option('display.max_columns', 0)Những lợi ích nào của bạn?
David García Bodego

3

Nếu bạn không muốn gây rối với các tùy chọn hiển thị của mình và bạn chỉ muốn xem một danh sách các cột cụ thể này mà không mở rộng mọi khung dữ liệu bạn xem, bạn có thể thử:

df.columns.values


2

Bạn chỉ có thể làm các bước sau đây,

  • Bạn có thể thay đổi các tùy chọn cho tính năng gấu trúc max_columns như sau

    import pandas as pd
    pd.options.display.max_columns = 10

    (điều này cho phép 10 cột hiển thị, bạn có thể thay đổi điều này khi bạn cần)

  • Giống như vậy, bạn có thể thay đổi số lượng hàng khi bạn cần hiển thị như sau (nếu bạn cũng cần thay đổi hàng tối đa)

    pd.options.display.max_rows = 999

    (điều này cho phép in 999 hàng cùng một lúc)

Vui lòng tham khảo tài liệu để thay đổi các tùy chọn / cài đặt khác nhau cho gấu trúc

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.