Saya sering bekerja dengan Series dan DataFrames di terminal. Default __repr__
untuk Seri mengembalikan sampel yang dikurangi, dengan beberapa nilai kepala dan ekor, tetapi sisanya hilang.
Apakah ada cara bawaan untuk cukup mencetak seluruh Seri / DataFrame? Idealnya, itu akan mendukung perataan yang tepat, mungkin berbatasan antara kolom, dan bahkan mungkin kode warna untuk kolom yang berbeda.
pd.set_option('display.max_rows', 1000)
misalnya, pewarnaan adalah sesuatu yang lain, saya berasumsi Anda berbicara tentang mewarnai output html repr. Saya tidak berpikir ini dibangun sama sekali.display.max_rows
, masalahnya adalah bahwa sebagian besar waktu saya ingin keluaran dipotong. Hanya sesekali saya ingin melihat hasil lengkapnya. Saya bisa mengatur opsi ke nilai yang sangat tinggi, menggunakan default__repr__
, lalu mengembalikan nilainya, tapi itu agak rumit, dan saya mungkin juga menulis fungsi cantik-cetak saya sendiri dalam kasus itu.set_option
yang mendukung pewarnaan, itu mungkin sesuatu yang bisa dilakukan sebagai plugin untuk menerapkan beberapa css atau format output. Ini adalah satu-satunya cara saya pikir Anda bisa mencapai iniJawaban:
Anda juga dapat menggunakan
option_context
, dengan satu opsi atau lebih:Ini akan secara otomatis mengembalikan opsi ke nilai sebelumnya.
Jika Anda bekerja pada jupyter-notebook, menggunakan
display(df)
bukannyaprint(df)
akan menggunakan logika tampilan kaya jupyter (seperti itu) .sumber
None
mematikannya. Menggunakanwith pd.option_context()
dokumen opsi apa yang terjadi sangat jelas dan eksplisit, dan membuat itu jelas bagaimana untuk mencapai perubahan lain dalam output format yang mungkin diinginkan, misalnya menggunakanprecision
,max_colwidth
,expand_frame_repr
,colheader_justify
,date_yearfirst
,encoding
, dan banyak banyak lagi: pandas.pydata.org/pandas -docs / stable / options.htmldisplay(df)
sebagai gantiprint(df)
Tidak perlu meretas pengaturan. Ada cara sederhana:
sumber
with pd.option_context()
dokumen opsi apa yang terjadi jauh lebih jelas dan eksplisit, dan membuat itu jelas bagaimana untuk mencapai perubahan lain dalam output format yang mungkin diinginkan, misalnya menggunakanprecision
,max_colwidth
,expand_frame_repr
,colheader_justify
,date_yearfirst
,encoding
, dan banyak banyak lagi: pandas.pydata.org/ panda-docs / stable / options.htmlpd.set_option('display.max_rows', None)
sesaat sebelum mencetakdf
.Tentu, jika ini banyak muncul, buat fungsi seperti ini. Anda bahkan dapat mengonfigurasinya untuk memuat setiap kali Anda memulai IPython: https://ipython.org/ipython-doc/1/config/overview.html
Sedangkan untuk mewarnai, terlalu rumit dengan warna-warna terdengar kontraproduktif bagi saya, tapi saya setuju sesuatu seperti bootstrap
.table-striped
akan menyenangkan. Anda selalu dapat membuat masalah untuk menyarankan fitur ini.sumber
Setelah mengimpor panda, sebagai alternatif untuk menggunakan manajer konteks, setel opsi seperti itu untuk menampilkan seluruh kerangka data:
Untuk daftar lengkap opsi yang bermanfaat, lihat:
sumber
-1
nilai int alih-alihNone
, jika Anda menginginkan representasi penuhdisplay.
dalam nama opsi sepertinya tidak perlu. Misalnya,set_option('max_columns')
berfungsi sama baiknya.Gunakan paket tabulasi:
Dan perhatikan contoh penggunaan berikut:
sumber
pd_series.to_frame()
Jika Anda menggunakan Ipython Notebook (Jupyter). Anda bisa menggunakan HTML
sumber
Menggunakan
pd.options.display
Jawaban ini adalah variasi dari jawaban sebelumnya oleh lucidyan . Itu membuat kode lebih mudah dibaca dengan menghindari penggunaan
set_option
.Setelah mengimpor panda, sebagai alternatif untuk menggunakan manajer konteks, setel opsi seperti itu untuk menampilkan kerangka data yang besar:
Setelah ini, Anda dapat menggunakan salah satu
display(df)
atau hanyadf
jika menggunakan notebook, jika tidakprint(df)
.Menggunakan
to_string
Pandas 0.25.3 memang memiliki
DataFrame.to_string
danSeries.to_string
metode yang menerima opsi pemformatan.Menggunakan
to_markdown
Jika yang Anda butuhkan adalah output penurunan harga, Pandas 1.0.0 telah
DataFrame.to_markdown
danSeries.to_markdown
metode.Menggunakan
to_html
Jika yang Anda butuhkan adalah output HTML, Pandas 0.25.3 memang memiliki
DataFrame.to_html
metode tetapi tidak aSeries.to_html
. Perhatikan bahwa aSeries
dapat dikonversi ke aDataFrame
.sumber
Coba ini
sumber
Anda dapat mencapai ini menggunakan metode di bawah ini. hanya melewati jumlah total. kolom yang ada di DataFrame sebagai arg to
Untuk misalnya:
sumber
Coba gunakan fungsi display (). Ini akan secara otomatis menggunakan bilah gulir Horizontal dan vertikal dan dengan ini Anda dapat menampilkan dataset berbeda dengan mudah daripada menggunakan print ().
display () juga mendukung perataan yang tepat.
Namun jika Anda ingin membuat dataset lebih indah, Anda dapat memeriksanya
pd.option_context()
. Ini memiliki banyak opsi untuk menampilkan kerangka data dengan jelas.Catatan - Saya menggunakan Notebook Jupyter.
sumber