Bagaimana cara memperluas tampilan output untuk melihat lebih banyak kolom dari panda DataFrame?

623

Apakah ada cara untuk memperluas tampilan output dalam mode eksekusi interaktif atau skrip?

Secara khusus, saya menggunakan describe()fungsi pada panda DataFrame. Ketika DataFramelebar 5 kolom (label), saya mendapatkan statistik deskriptif yang saya inginkan. Namun, jika DataFramememiliki lebih banyak kolom, statistik ditekan dan sesuatu seperti ini dikembalikan:

>> 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  

Nilai "8" diberikan apakah ada 6 atau 7 kolom. Apa yang dimaksud dengan "8"?

Saya sudah mencoba menyeret jendela IDLE lebih besar, serta meningkatkan opsi lebar "Konfigurasi IDLE", tetapi tidak berhasil.

Tujuan saya dalam menggunakan panda dan describe()untuk menghindari penggunaan program kedua seperti Stata untuk melakukan manipulasi dan investigasi data dasar.

bit
sumber

Jawaban:

890

Pembaruan: Pandas 0.23.4 dan seterusnya

Ini tidak perlu, panda mendeteksi secara otomatis ukuran jendela terminal Anda jika Anda mengatur pd.options.display.width = 0. (Untuk versi yang lebih lama lihat di bagian bawah.)

pandas.set_printoptions(...)sudah ditinggalkan. Sebaliknya, gunakan pandas.set_option(optname, val), atau setara pd.options.<opt.hierarchical.name> = val. Suka:

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

Ini adalah bantuan untukset_option :

set_option (pat, value) - Menetapkan nilai opsi yang ditentukan

Pilihan yang tersedia:
tampilan. [chop_threshold, colheader_justify, column_space, date_dayfirst,
         date_yearfirst, encoding, expand_frame_repr, float_format, tinggi,
         line_width, max_columns, max_colwidth, max_info_columns, max_info_rows,
         max_rows, max_seq_items, mpl_style, multi_sparse, notebook_repr_html,
         pprint_nest_depth, presisi, lebar]
mode. [sim_interactive, use_inf_as_null]

Parameter
----------
pat - str / regexp yang harus cocok dengan satu opsi.

Catatan: kecocokan sebagian didukung untuk kenyamanan, tetapi kecuali jika Anda menggunakan
nama opsi lengkap (egxyzoption_name), kode Anda mungkin rusak di masa depan
versi jika opsi baru dengan nama yang mirip diperkenalkan.

value - nilai opsi baru.

Kembali
-------
Tidak ada

Meningkatkan
------
KeyError jika tidak ada opsi seperti itu

display.chop_threshold: [default: Tidak ada] [saat ini: Tidak ada]
: float or None
        jika diatur ke nilai float, semua nilai float lebih kecil dari ambang yang diberikan
        akan ditampilkan dengan tepat 0 oleh repr dan teman.
display.colheader_justify: [default: right] [saat ini: right]
: 'kiri kanan'
        Mengontrol pembenaran header kolom. digunakan oleh DataFrameFormatter.
display.column_space: [default: 12] [saat ini: 12] Tidak ada deskripsi yang tersedia.

display.date_dayfirst: [default: False] [saat ini: False]
: boolean
        Ketika Benar, cetak dan parsing tanggal dengan hari pertama, misalnya 20/01/2005
display.date_yearfirst: [default: False] [saat ini: False]
: boolean
        When True, mencetak dan mem-parsing tanggal dengan tahun pertama, mis. 2005/01/20
display.encoding: [default: UTF-8] [saat ini: UTF-8]
: str / unicode
        Default untuk pengkodean konsol yang terdeteksi.
        Menentukan penyandian yang akan digunakan untuk string yang dikembalikan oleh to_string,
        ini umumnya string yang dimaksudkan untuk ditampilkan di konsol.
display.expand_frame_repr: [default: True] [saat ini: True]
: boolean
        Apakah akan mencetak repr DataFrame lengkap untuk DataFrame lebar
        melintasi banyak baris, `max_columns` masih dihormati, tetapi hasilnya akan
        membungkus beberapa "halaman" jika lebarnya melebihi `display.width`.
display.float_format: [default: Tidak ada] [saat ini: Tidak ada]
: bisa dipanggil
        Callable harus menerima nomor floating point dan kembali
        string dengan format angka yang diinginkan. Ini digunakan
        di beberapa tempat seperti SeriesFormatter.
        Lihat core.format.EngFormatter untuk contoh.
display.height: [default: 60] [saat ini: 1000]
: int
        Usang.
        (Sudah usang, gunakan `display.height`.)

display.line_width: [default: 80] [saat ini: 1000]
: int
        Usang.
        (Sudah usang, gunakan `display.width` sebagai gantinya.)

display.max_columns: [default: 20] [saat ini: 500]
: int
        max_rows dan max_columns digunakan dalam metode __repr __ () untuk memutuskan apakah
        to_string () atau info () digunakan untuk merender objek ke string. Dalam hal
        python / IPython berjalan di terminal ini dapat diatur ke 0 dan panda
        akan secara otomatis mendeteksi lebar terminal dan menukar ke yang lebih kecil
        Format jika semua kolom tidak akan cocok secara vertikal. Notebook IPython,
        IPython qtconsole, atau IDLE tidak berjalan di terminal dan karenanya tidak
        mungkin untuk melakukan deteksi otomatis yang benar.
        Nilai 'Tidak Ada' berarti tidak terbatas.
display.max_colwidth: [default: 50] [saat ini: 50]
: int
        Lebar maksimum dalam karakter kolom dalam repr dari
        struktur data panda. Saat kolom meluap, "..."
        placeholder tertanam dalam output.
display.max_info_columns: [default: 100] [saat ini: 100]
: int
        max_info_columns digunakan dalam metode DataFrame.info untuk memutuskan apakah
        per kolom informasi akan dicetak.
display.max_info_rows: [default: 1690785] [saat ini: 1690785]
: int atau Tidak Ada
        max_info_rows adalah jumlah baris maksimum yang diinginkan frame
        melakukan pemeriksaan nol pada kolom-kolomnya ketika repr'ing Ke konsol.
        Standarnya adalah 1.000.000 baris. Jadi, jika DataFrame memiliki lebih banyak
        1.000.000 baris tidak akan ada pemeriksaan nol yang dilakukan pada
        kolom dan dengan demikian representasi akan memakan waktu lebih sedikit untuk
        ditampilkan dalam sesi interaktif. Nilai Tidak ada berarti selalu
        melakukan pemeriksaan nol saat repr'ing.
display.max_rows: [default: 60] [saat ini: 500]
: int
        Ini menetapkan jumlah maksimum baris yang harus dikeluarkan panda saat mencetak
        berbagai keluaran. Sebagai contoh, nilai ini menentukan apakah repr ()
        untuk frame data dicetak sepenuhnya atau hanya ringkasan repr.
        Nilai 'Tidak Ada' berarti tidak terbatas.
display.max_seq_items: [default: Tidak ada] [saat ini: Tidak ada]
: int atau Tidak Ada

        saat mencetak cukup lama, tidak lebih dari `max_seq_items`
        akan dicetak. Jika item dinonaktifkan, mereka akan dilambangkan dengan penambahan
        dari "..." ke string yang dihasilkan.

        Jika diatur ke None, jumlah item yang akan dicetak tidak terbatas.
display.mpl_style: [default: Tidak ada] [saat ini: Tidak ada]
: bool

        Mengatur ini ke 'default' akan memodifikasi rcParams yang digunakan oleh matplotlib
        untuk memberikan plot gaya visual yang lebih menyenangkan secara default.
        Mengatur ini ke None / False mengembalikan nilai ke nilai awal mereka.
display.multi_sparse: [default: True] [saat ini: True]
: boolean
        Tampilan "sparsify" MultiIndex (jangan tampilkan berulang-ulang
        elemen di tingkat luar dalam kelompok)
display.notebook_repr_html: [default: True] [saat ini: True]
: boolean
        Ketika Benar, notebook IPython akan menggunakan representasi html untuk
        objek panda (jika tersedia).
display.pprint_nest_depth: [default: 3] [saat ini: 3]
: int
        Mengontrol jumlah level bersarang untuk diproses saat pencetakan cantik
display.precision: [default: 7] [saat ini: 7]
: int
        Presisi output titik mengambang (jumlah digit signifikan). Ini adalah
        hanya saran
display.width: [default: 80] [saat ini: 1000]
: int
        Lebar layar dalam karakter. Dalam kasus python / IPython sedang berjalan masuk
        terminal ini dapat diatur ke Tidak ada dan panda akan secara otomatis mendeteksi
        lebar.
        Perhatikan bahwa notebook IPython, IPython qtconsole, atau IDLE tidak berjalan di a
        terminal dan karenanya tidak mungkin untuk mendeteksi lebar dengan benar.
mode.sim_interactive: [default: False] [saat ini: False]
: boolean
        Apakah akan mensimulasikan mode interaktif untuk keperluan pengujian
mode.use_inf_as_null: [default: False] [saat ini: False]
: boolean
        Benar berarti memperlakukan Tidak Ada, NaN, INF, -INF sebagai null (cara lama),
        Salah berarti Tidak Ada dan NaN adalah nol, tetapi INF, -INF bukan nol
        (jalan baru).
Panggil def: pd.set_option (mandiri, * args, ** kwds)

EDIT: informasi versi lama, banyak dari ini sudah usang.

Seperti @bmu sebutkan , panda otomatis mendeteksi (secara default) ukuran area tampilan, tampilan ringkasan akan digunakan ketika objek repr tidak sesuai pada tampilan. Anda menyebutkan mengubah ukuran jendela IDLE, tidak berpengaruh. Jika Anda melakukannya print df.describe().to_string()cocok pada jendela IDLE?

Ukuran terminal ditentukan oleh pandas.util.terminal.get_terminal_size()(usang dan dihapus), ini mengembalikan sebuah tuple yang berisi (width, height)tampilan. Apakah output cocok dengan ukuran jendela IDLE Anda? Mungkin ada masalah (ada satu sebelumnya ketika menjalankan terminal di emacs).

Perhatikan bahwa dimungkinkan untuk memintas deteksi otomatis, pandas.set_printoptions(max_rows=200, max_columns=10)tidak akan pernah beralih ke tampilan ringkasan jika jumlah baris, kolom tidak melebihi batas yang diberikan.


Opsi 'max_colwidth' membantu dalam melihat bentuk yang tidak terpotong dari setiap kolom.

Tampilan terpotong

Wouter Overmeire
sumber
4
display.height: usang, gunakan display.height... saya dalam lingkaran mati.
Api Beku
5
Saat ini opsi juga dapat ditetapkan sebagai penugasan ke atributpd.options , misalnyapd.options.display.max_rows = 999
unutbu
2
Properti 'display.height' sudah usang.
Greg M. Krsak
2
Tidak bekerja untuk saya di Panda 0.23.2.
devinbost
6
Anda mungkin ingin menggunakan option_context sehingga perubahan opsi bersifat lokal untuk hal yang Anda kerjakan. Ini mencegah secara tidak sengaja mencetak 400 halaman sampah pada panggilan Anda berikutnya .head()atau apa pun.
Mike Williamson
195

Coba ini:

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

Dari dokumentasi:

display.expand_frame_repr: boolean

Apakah untuk mencetak repr DataFrame lengkap untuk DataFrame lebar di beberapa baris, max_columns masih dihormati, tetapi output akan membungkus di beberapa "halaman" jika lebarnya melebihi display.width. [default: True] [saat ini: True]

Lihat: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.set_option.html

Robert Rose
sumber
6
Yang ini bekerja untuk saya. Tampaknya panda salah menghitung lebar output karena suatu alasan, dan memecah kolom yang tidak perlu.
zbyszek
5
Saya benar-benar harus melakukan ini setiap hari ... Apakah ada cara untuk mengatur ini secara global di suatu tempat?
citynorman
1
@citynorman lihat pandas\core\config_init.pyuntuk mengaturnya secara permanen.
Jarad
106

Jika Anda ingin mengatur opsi untuk sementara menampilkan satu DataFrame besar, Anda dapat menggunakan option_context :

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

Nilai opsi dipulihkan secara otomatis saat Anda keluar dari withblokir.

jezrael
sumber
3
Untuk tidak menetapkan batas, Nonedapat digunakan (bukan 999, dll.).
Eric O Lebigot
5
with pd.option_context('display.max_rows', None, 'display.max_columns', None): print(energy)tidak bekerja Itu tidak mengubah jumlah kolom yang ingin saya lihat. Namun, solusi Wouter Overmeiere berhasil.
Aziz Javed
Tetapi ada perbedaan, butuh angka seperti -1atau 500, tidak ada.
jezrael
2
Menggunakan -1 crash, dan 500 tidak melakukan apa-apa
Aziz Javed
1
+1 untuk menyarankan manajer konteks, tetapi -1 untuk max_rowsnilai;). Pengaturan 'display.max_rows'ke -1 tampaknya mengacaukan format sepenuhnya (untuk data saya tidak ada kerusakan, tetapi mencetak baris tertentu beberapa kali sekarang).
bluenote10
88

Hanya menggunakan 3 baris ini yang berfungsi untuk saya:

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 / panda: 0.23.0 / Visual Studio Code 1.26

arispen
sumber
54

Setel lebar maks kolom menggunakan:

pd.set_option('max_colwidth', 800)

Pernyataan khusus ini menetapkan lebar maksimal hingga 800px, per kolom.

pX0r
sumber
2
Menggulir ke bawah dalam urutan suara menurun, ini adalah jawaban pertama yang berhasil bagi saya untuk mendapatkan panda agar tidak memotong output plaintext dari DataFrames. (panda 0.22, iTerm2 3.0.13, OS X 10.12).
Peter Leimbigler
2
Ini adalah satu-satunya yang bekerja untuk saya untuk Pandas 0.23.2.
devinbost
1
Kenapa Anda tidak harus menentukannya sebagai display.max_colwidth? Begitulah yang tercantum dalam dokumentasi. Saya setuju bahwa hanya max_colwidthberfungsi dan lebih pendek untuk menulis, tetapi saya terkejut.
cmo
26

Anda bisa menggunakannya print df.describe().to_string()untuk memaksanya menampilkan seluruh tabel. (Anda dapat menggunakan to_string()seperti ini untuk DataFrame apa pun. Hasil dari describehanya DataFrame itu sendiri.)

Angka 8 adalah jumlah baris dalam DataFrame yang memegang "deskripsi" (karena describemenghitung 8 statistik, min, maks, rata-rata, dll.).

BrenBarn
sumber
26

Anda dapat menyesuaikan opsi cetak panda dengan 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

Namun ini tidak akan bekerja dalam semua kasus karena panda mendeteksi lebar konsol Anda dan hanya akan digunakan to_stringjika output cocok di konsol (lihat dokumentasi set_printoptions). Dalam hal ini Anda dapat secara eksplisit menelepon to_stringseperti dijawab oleh BrenBarn .

Memperbarui

Dengan versi 0.10, cara lebar bingkai data dicetak berubah :

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  

Lebih jauh lagi, API untuk pengaturan opsi panda berubah:

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
bmu
sumber
Saya lebih suka menggunakan metode max_columns yang disebutkan oleh lodagro, tapi saya senang Anda menyebutkan kata kunci presisi karena itu akan membantu membersihkan statistik yang ditampilkan. Terima kasih!
bit
22

Anda dapat mengatur tampilan output agar sesuai dengan lebar terminal Anda saat ini:

pd.set_option('display.width', pd.util.terminal.get_terminal_size()[0])
Wilfred Hughes
sumber
6
@ wouter-overmeire mengatakan bahwa panda melakukan ini secara otomatis , tetapi sepertinya tidak demikian, setidaknya tidak dengan 0.18.0. Namun, jika Anda menggunakan pd.set_option('display.width', None)terminal, "panda akan secara otomatis mendeteksi lebar" .
Matthias Fripp
Persis! Ini tidak melakukannya secara default. Mengaturnya pada Tidak ada, itu mengabaikan lebar sama sekali. Mungkin itu bug di Panda atau mungkin ada hubungannya dengan terminal gnome ..? Terima kasih Wilfred Hughes!
hazard89
3
AttributeError: module 'pandas.util' tidak memiliki atribut 'terminal'
Bhishan Poudel
1
@ BhishanPoudel Anda dapat melakukan ini sebagai gantinya:pd.options.display.width = None
SebMa
1
@ BhishanPoudel Jawaban ini berumur beberapa tahun, dan saya mengalami masalah yang sama seperti Anda. Saat menulis ini, menggunakan panda versi 0.23.1, modulnya sekarangpd.io.formats.terminal.get_terminal_size()
Ajay
13

Menurut dokumen untuk v0.18.0 , jika Anda menjalankan pada terminal (bukan notebook iPython, qtconsole atau IDLE), itu adalah 2-liner untuk membuat Pandas secara otomatis mendeteksi lebar layar Anda dan beradaptasi dengan cepat dengan berapa banyak kolom itu menunjukkan:

pd.set_option('display.large_repr', 'truncate')
pd.set_option('display.max_columns', 0)
hamx0r
sumber
1
Ini berhasil untuk saya, terima kasih! Saya menggunakan Pandas 0.22.0 (terbaru pada 8 Februari 2018) menggunakan aplikasi Terminal bawaan pada OS X 10.11.6
Greg Sadetsky
8

Sepertinya semua jawaban di atas menyelesaikan masalah. Satu hal lagi: alih-alih pd.set_option('option_name'), Anda dapat menggunakan (kemampuan-otomatis-lengkap)

pd.options.display.width = None

Lihat Pandas doc: Opsi dan Pengaturan:

Opsi memiliki nama "titik-titik" penuh, tidak peka huruf besar-kecil (misalnya display.max_rows). Anda bisa mendapatkan / mengatur opsi secara langsung sebagai atribut dari atribut tingkat atas options:

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

[...]

untuk max_...params:

max_rowsdan max_columnsdigunakan dalam __repr__()metode untuk memutuskan apakah to_string()atau info()digunakan untuk membuat objek ke string. Dalam kasus python / IPython berjalan di terminal ini dapat diatur ke 0 dan panda akan secara otomatis mendeteksi lebar terminal dan menukar ke format yang lebih kecil jika semua kolom tidak muat secara vertikal. Notebook IPython, IPython qtconsole, atau IDLE tidak berjalan di terminal dan karenanya tidak mungkin untuk melakukan deteksi otomatis yang benar. ' None' Nilai berarti tidak terbatas. [Penekanan tidak pada aslinya]

untuk widthparam:

Lebar layar dalam karakter. Dalam kasus python / IPython berjalan di terminal ini dapat diatur ke Nonedan panda akan secara otomatis mendeteksi lebar. Perhatikan bahwa notebook IPython, IPython qtconsole, atau IDLE tidak berjalan di terminal dan karenanya tidak mungkin untuk mendeteksi lebar dengan benar.

serv-inc
sumber
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]))

Keluaran:

   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
William Pourmajidi
sumber
Anda hanya perlu dua ini: (Lihat contoh di atas) impor panda sebagai pd pd.set_option ('display.max_columns', 100) pd.set_option ('display.width', 1000)
William Pourmajidi
4

Saya menggunakan pengaturan ini ketika skala data tinggi.

# 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)

Anda dapat merujuk dokumentasi di sini

debaonline4u
sumber
4

Baris di bawah ini cukup untuk menampilkan semua kolom dari dataframe. pd.set_option('display.max_columns', None)

Zeeshan
sumber
1
Selamat datang di SO! Ketika Anda memposting jawaban baru untuk sebuah pertanyaan dan ada beberapa jawaban lagi, cobalah untuk menunjukkan kelebihannya. Masih ada satu jawaban pd.set_option('display.max_columns', 0)Mana yang menjadi keunggulan Anda?
David García Bodego
3

Jika Anda tidak ingin mengacaukan opsi tampilan Anda dan Anda hanya ingin melihat daftar kolom khusus ini tanpa memperluas setiap kerangka data yang Anda lihat, Anda dapat mencoba:

df.columns.values
Juga
sumber
2

Anda juga dapat mencoba dalam satu lingkaran:

for col in df.columns: 
    print(col) 
hidup itu indah
sumber
2

Anda cukup melakukan langkah-langkah berikut,

  • Anda dapat mengubah opsi untuk fitur panda max_columns sebagai berikut

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

    (ini memungkinkan 10 kolom untuk ditampilkan, Anda dapat mengubahnya sesuai kebutuhan)

  • Seperti itu, Anda dapat mengubah jumlah baris yang perlu Anda tampilkan sebagai berikut (jika Anda perlu mengubah baris maksimum juga)

    pd.options.display.max_rows = 999

    (ini memungkinkan untuk mencetak 999 baris sekaligus)

Silakan merujuk dokumen untuk mengubah berbagai opsi / pengaturan untuk panda

Amila Viraj
sumber