Bagaimana cara mencetak bingkai data pandas sebagai tabel berbasis teks yang bagus, seperti berikut ini?
+------------+---------+-------------+
| column_one | col_two | column_3 |
+------------+---------+-------------+
| 0 | 0.0001 | ABCD |
| 1 | 1e-005 | ABCD |
| 2 | 1e-006 | long string |
| 3 | 1e-007 | ABCD |
+------------+---------+-------------+
tabulate([list(row) for row in df.values], headers=list(df.columns))
untuk menghilangkan indeksprint(tabulate(df, **kwargs))
dan tidak sederhanatabulate(df, **kwargs)
; yang terakhir akan menampilkan semua baris baru\n
....showindex=False
Pendekatan sederhananya adalah dengan mengeluarkan sebagai html, yang dilakukan panda di luar kotak :
sumber
panda> = 1.0
Jika Anda ingin fungsi bawaan untuk membuang data Anda ke beberapa penurunan harga github, Anda sekarang memilikinya. Lihat di
to_markdown
:Inilah tampilannya di github:
Perhatikan bahwa Anda masih perlu
tabulate
menginstal paket.sumber
Jika Anda menggunakan notebook Jupyter, Anda dapat menjalankan kode berikut untuk menampilkan dataframe secara interaktif dalam tabel yang diformat dengan baik.
Jawaban ini dibuat berdasarkan jawaban to_html ('temp.html') di atas, tetapi alih-alih membuat file, tampilkan tabel yang diformat dengan baik langsung di buku catatan:
Kredit untuk kode ini karena contoh di: Tampilkan DataFrame sebagai tabel di Notebook iPython
sumber
Anda dapat menggunakan prettytable untuk membuat tabel sebagai teks. Triknya adalah dengan mengubah data_frame menjadi file csv dalam memori dan meminta cukup untuk membacanya. Berikut kodenya:
sumber
prettytable
sebagian besar dianggap perangkat pengabaian. Malu juga, karena itu paket yang bagus. :(prettytable
belum dirilis sejak 6 April 2013.tabulate
adalah pendahulu spiritualnya dan memiliki rilis rutin, yang terbaru pada 24 Jan 2019.Saya menggunakan jawaban Ofer untuk sementara waktu dan menganggapnya bagus dalam banyak kasus. Sayangnya, karena inkonsistensi antara to_csv panda ini dan prettytable from_csv 's, saya harus menggunakan prettytable dengan cara yang berbeda.
Satu kasus kegagalan adalah kerangka data yang berisi koma:
Prettytable menimbulkan kesalahan dalam bentuk:
Fungsi berikut menangani kasus ini:
Jika Anda tidak peduli dengan indeks, gunakan:
sumber
format_for_print()
tampaknya fungsi tersebut tidak mencetak indeks Pandas DataFrame. Saya mengatur indeks menggunakandf.index.name = 'index'
tetapi ini tidak mencetak kolom indeks dengan nama.Menindaklanjuti jawaban Mark, jika Anda tidak menggunakan Jupyter karena alasan tertentu, misalnya Anda ingin melakukan beberapa pengujian cepat di konsol, Anda dapat menggunakan
DataFrame.to_string
metode yang berfungsi dari - setidaknya - Pandas 0.12 (2014) dan seterusnya .sumber
Mungkin Anda sedang mencari sesuatu seperti ini:
sumber
Saya ingin cetakan kertas kerangka data tetapi saya ingin menambahkan beberapa hasil dan komentar juga di halaman yang sama. Saya telah bekerja melalui hal-hal di atas dan saya tidak bisa mendapatkan apa yang saya inginkan. Saya akhirnya menggunakan pernyataan file.write (df1.to_csv ()) dan file.write (",,, blah ,,,,,, blah") untuk mendapatkan tambahan saya di halaman. Ketika saya membuka file csv, file itu langsung masuk ke spreadsheet yang mencetak semuanya dengan kecepatan dan format yang benar.
sumber