Untuk semua orang yang telah banyak mempermasalahkan data menggunakan daftar, Panda, atau NumPy sebelumnya, Anda mungkin pernah mengalami masalah saat mencetak data dengan cara yang benar. Apalagi jika kolomnya banyak, menampilkan data menjadi repot. Artikel ini menunjukkan kepada Anda bagaimana Anda bisa mencetak data kolom besar dengan python dengan cara yang mudah dibaca
Untuk menjelaskan dengan jelas, saya menggunakan data penjualan Properti NYC, yang memiliki total 21 kolom
Inilah yang terjadi jika Anda memiliki Pandas DataFrame dengan banyak kolom dan mencoba mencetaknya dengan pernyataan cetak biasa
import pandas as pdnycdata=pd.read_csv('nyc-rolling-sales.csv',index_col=0)print(nycdata.head())Data dihilangkan dari pencetakan
Ini terjadi karena Panda akan mendeteksi jumlah kolom yang dapat ditampungnya di ruang jendela terminal Anda, yang tidak akan menampilkan dengan tepat apa yang kita butuhkan. Sebagian besar data dihilangkan dari pencetakan untuk menghemat ruang terminal di layar Anda
Untuk mengatasinya, berikut beberapa cara yang bisa dilakukan
Trik yang BAIK
Anda dapat meningkatkan jumlah maksimum kolom yang dapat ditampilkan Pandas, dengan menambahkan baris ini ke kode Anda
pd.options.display.max_columns = None_Ini menghilangkan batas kolom maks untuk ditampilkan di layar. Inilah tampilannya saat dicetak (hanya mencetak 11 kolom pertama untuk saat ini. )
Hasil cetak setelah menghapus batas kolom maks
Tapi, hei, itu tidak sepenuhnya yang kami butuhkan. Data dibagi menjadi beberapa baris, dengan header dibagi dengan garis miring ke belakang. Ini dapat dibaca dan bermanfaat, tetapi masih belum sempurna
Untuk mengatasinya, cukup gunakan baris ini dengan kode Anda dan Anda bisa mendapatkan semua data dalam satu baris
pd.options.display.width=NoneDan seperti inilah tampilannya sekarang (dicetak hanya 7 kolom)
Hasil cetak setelah menghapus batas lebar maks
Hati-hati — sebagian besar editor kode tidak menampilkan potongan besar data kolom dengan cara yang baik. Output Anda akan berantakan dengan cara yang benar-benar tidak dapat dibaca, dan Anda perlu memaksimalkan jendela output Anda untuk melihat semua data dengan baik. PyCharm melakukan pekerjaan yang sangat baik dalam hal ini — ini menunjukkan kepada Anda bilah gulir horizontal tempat Anda dapat menggulir data yang telah Anda cetak. Ini tidak akan terjadi pada Terminal standar atau editor seperti VSCode
Jika Anda menggunakan Terminal atau VSCode, maksimalkan jendela dan kurangi ukuran font sehingga Anda dapat memuat sebagian besar kolom di ruang terbatas dan melihat data Anda dengan cantik
Ini adalah bagaimana data lengkap ditampilkan di keluaran Terminal (VSCode mencetaknya dengan cara yang sama)
Semua kolom di Terminal
Dan beginilah cara PyCharm menampilkan data yang sama
Cetak scrollbar PyCharm
Jika Anda menggunakan PyCharm dan ingin menampilkan data yang mirip dengan yang di atas, atau jika menurut Anda memaksimalkan dan mengurangi ukuran font dapat diterima — inilah cara yang lebih baik untuk menampilkan data Anda
Trik yang LEBIH BAIK
Anda dapat menggunakan perpustakaan yang disebut "tabulasi" untuk menampilkan data dalam kolom dengan mudah. Semudah membungkus fungsi sederhana ke fungsi cetak yang digunakan pada DataFrame
from tabulate import tabulate.
.
.
print(tabulate(df,headers='firstrow'))
dan beginilah cara tabulasi menampilkan data Anda
Cetak tabulasi
Untuk membuang baris kode ekstra pada pernyataan cetak, fungsi lambda sederhana dapat ditulis dengan cara ini
from tabulate import tabulatepdtabulate=lambda df:tabulate(df,headers='keys')
.
.
.
print(pdtabulate(df))_
Hebatnya lagi, Anda bisa memilih format pencetakan dari berbagai format. Yang perlu Anda lakukan hanyalah menambahkan argumen 'tablefmt' ke fungsi tabulasi dan menetapkannya dengan format cetak pilihan Anda. Favorit saya adalah 'psql', yang menggunakan format PostgreSQL untuk menampilkan data tabular
from tabulate import tabulatepdtabulate=lambda df:tabulate(df,headers='keys',tablefmt='psql')
.
.
.
print(pdtabulate(df))
Dan seperti inilah tampilannya
Terasa seperti SQL
Jika Anda perlu mengubah data menjadi tabel HTML, tabulasi dengan mudah melakukannya untuk Anda
from tabulate import tabulatepdtabulate=lambda df:tabulate(df,headers='keys',tablefmt='html')
.
.
.
print(pdtabulate(df))_
Data dicetak ke Tabel HTML
Tabulasi berfungsi dengan sangat baik bahkan untuk daftar besar dan array NumPy yang besar
from tabulate import tabulatepdtabulate=lambda df:tabulate(df,headers='keys',tablefmt='psql')#Creating a list using garbage values
list = [['a', 'b', 'c','d'], ['aaaaaaaaaa', 'b', 'c'], ['a', 'bbbbbbbbbb', 'c'], ['aaaaaaaaaa', 'b', 'c'], ['a', 'bbbbbbbbbb', 'c'], ['aaaaaaaaaa', 'b', 'c'], ['a', 'bbbbbbbbbb', 'c'], ['aaaaaaaaaa', 'b', 'c'], ['a', 'bbbbbbbbbb', 'c']]print(pdtabulate(list))
Dan inilah tampilannya
Cetakan daftar 2D normal vs tabulasi
Berikut adalah contoh array NumPy yang divisualisasikan menggunakan tabulasi
Cetakan normal vs tabulasi dari larik NumPy sederhana
Untuk informasi lebih lanjut tentang perpustakaan yang luar biasa ini dan lebih banyak untuk mengetahui lebih banyak tentang berbagai format cetak, kunjungi halaman ini
Meskipun trik ini akan sangat membantu, trik berikut menunjukkan data kami dengan cara terbaik
Trik TERBAIK
Lupakan PyCharm, Terminal, dan tabulasi — gunakan notebook Jupyter sebagai gantinya untuk menampilkan data Anda
Buku catatan Jupyter menampilkan data Anda mirip dengan kasing pertama—mereka menghilangkan beberapa kolom di layarnya
Data ditampilkan di Notebook Jupyter — beberapa kolom dihilangkan
Untuk menyiasatinya, gunakan baris yang sama yang digunakan dalam contoh cetak untuk menampilkan semua kolom data Anda
pd.options.display.max_columns = None_Dan Jupyter menunjukkan tabel HTML yang diformat sempurna untuk Anda
Data setelah menghapus batas kolom maks
Akhir hari
Jika Anda sering menggunakan notebook Jupyter, cukup atur kolom maks ke Tidak ada yang akan menampilkan semua data Anda sekaligus. Tetapi jika Anda adalah orang yang suka menulis kode di editor dan tidak pindah ke notebook Jupyter untuk memahami data, menggunakan perpustakaan tabulasi adalah cara terbaik untuk melakukannya.