Menampilkan semua kolom kerangka data di Notebook Jupyter Python


108

Saya ingin menampilkan semua kolom dalam bingkai data di Notebook Jupyter. Jupyter menunjukkan beberapa kolom dan menambahkan titik-titik ke kolom terakhir seperti pada gambar berikut:

Tangkapan Layar Juputer

Bagaimana cara menampilkan semua kolom?

Jawaban:


181

Coba pengaturan tampilan max_columns sebagai berikut:

import pandas as pd
from IPython.display import display

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

Atau

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

Edit: Pandas 0.11.0 mundur

Ini tidak digunakan lagi tetapi dalam versi Panda yang lebih lama dari 0.11.0, max_columnssetelannya ditetapkan sebagai berikut:

pd.set_printoptions(max_columns=500)

Seharusnya berfungsi kecuali Anda memiliki versi Panda yang sangat lama. Saya telah memperbarui jawabannya ...
Isma

5
Jika Anda ingin membuat pengaturan sementara, Anda dapat menggunakan misalnya with pd.option_context("display.max_rows", 10, "display.max_columns", 5):(lihat Mendapatkan dan mengatur pilihan ).
Benjamin B.

37

Saya tahu pertanyaan ini agak lama tetapi yang berikut berhasil untuk saya di Notebook Jupyter yang menjalankan pandas 0.22.0 dan Python 3:

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

Anda juga dapat melakukan hal yang sama untuk baris:

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

Ini menghemat pengimporan IPython, dan ada lebih banyak opsi di dokumentasi pandas.set_option: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html


1
Anda dapat menggunakan kata kunci Tidak Ada dalam <jumlah kolom> jika Anda tidak mengetahui jumlah kolom sebelumnya.
kmundnic

9

Python 3.x untuk DataFrames besar (tapi tidak terlalu besar)

Mungkin karena saya memiliki versi panda yang lebih lama tetapi pada notebook Jupyter, ini berfungsi untuk saya

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

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

Sudah mencoba ini tetapi itu merusak sesi jupyter saya keluar dari ingatan. PC saya memiliki SSD dan memori RAM 8 GB ...
FLBKernel

@ FLBKernel tidak melakukan ini kepada saya, mungkin Dataframe Anda jauh lebih besar dari milik saya. Apa jalan keluarmu? Apakah Anda mencoba metode lain dan berhasil? jika demikian bagikan ilmu anda. Terima kasih.
rsc05

Saya belum menemukan metode apa pun, tetapi saya akan memberi tahu Anda segera setelah saya menyelesaikan masalah ini. Dan ya, Dataframe saya mungkin lebih besar jadi mari kita tunjukkan bahwa ini tidak direkomendasikan untuk Dataframe besar
FLBKernel

1
@ FLBKernel Bingkai data saya juga besar. Tapi saya tidak tahu seberapa besar itu bisa terjadi. Saya akan menunjukkannya. Terima kasih!
rsc05

Milik saya memiliki 107.763 baris dan 15 kolom. Kita dapat menetapkan -mungkin- lebih dari 100k baris dan 15 kolom jawaban ini tidak direkomendasikan. Saya suka judul "besar (tapi tidak terlalu besar)" :)
FLBKernel

5

Saya merekomendasikan pengaturan opsi tampilan di dalam pengelola konteks sehingga hanya memengaruhi satu output. Jika Anda juga ingin mencetak versi html "cantik", saya akan menentukan fungsi dan menampilkan kerangka data dfmenggunakan 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()))

Seperti yang telah disebutkan orang lain, berhati-hatilah untuk hanya memanggil ini pada kerangka data berukuran wajar.


1

Anda dapat menggunakan pandas.set_option (), untuk kolom, Anda dapat menentukan salah satu opsi ini

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

Untuk kolom full print bisa menggunakan seperti ini

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

masukkan deskripsi gambar di sini


1

Jika Anda ingin menampilkan semua baris diatur seperti di bawah ini

pd.options.display.max_rows = None

Jika Anda ingin menampilkan semua kolom seperti di bawah ini

pd.options.display.max_columns = None
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.