Lembar cheat format file data Python

Python memahami semua format file populer. Selain itu, setiap perpustakaan memiliki format "tabung hangat" sendiri. Sintaksis, tentu saja, dalam setiap format adalah murni individual. Saya mengumpulkan semua fungsi untuk bekerja dengan file format berbeda pada satu lembar A4, dengan aplikasi sebagai contoh penggunaan di notebook jupyter.



Saya membagi format menjadi tiga blok sesuai dengan metode penggunaan. Seperti yang Anda ketahui, file diperlukan untuk bertukar informasi: antara orang, antara program (blok pertama), antara komputer dan jaringan (kedua) dan "save game" - antara program yang sama di titik waktu yang berbeda (blok ketiga).

Secara singkat tentang setiap blok:

1) Format universal:

  • .csv - teks, nilai yang dipisahkan secara prinsip dengan dipisahkan oleh koma, tetapi misalnya, excel Rusia lebih suka memisahkannya dengan tanda koma, karena koma sudah digunakan di lokal Rusia sebagai pemisah desimal;
  • .raw adalah format biner untuk mereka yang tidak suka format file. Jenis data dan, jika data multidimensi, ukuran yang sesuai harus ditransfer secara terpisah, hanya data itu sendiri dalam file;
  • .xls / .xlsx - biner lama (batasan 65k baris) dan format exel xml baru;
  • .mat sebenarnya juga dua format (keduanya biner): yang lama dan yang baru berdasarkan hdf5. Python dapat bekerja dengan keduanya (melalui perpustakaan).

2) format "Jaringan":

  • .json - tekstual, terlihat seperti kamus dengan python, tetapi tanda kutip hanya dapat digunakan dua kali lipat;
  • .xml - tekstual, mirip dengan html.

3) format python asli:

  • .pkl adalah format biner, semua objek Python bawaan dapat disimpan ke dalamnya. Kelas kustom juga dapat, dan jika python menyimpan sesuatu yang salah, Anda dapat membantunya melalui metode ajaib. Mendukung menambahkan hingga akhir file yang ada.
  • .npy dan .npz - dalam numpy ada sebanyak dua format mereka (keduanya biner). Mereka muncul sebagai reaksi terhadap hilangnya kompatibilitas ke belakang di pkl pada saat transisi python v2-> v3. Overheadnya minimal (~ 100 byte lebih dari raw yang sesuai; pkl, bagaimanapun, sedikit lebih besar: ~ 150 byte lebih dari raw). Di .npy Anda hanya dapat menyimpan satu array, dan dalam npz - beberapa sekaligus, dan Anda kemudian bisa mengeluarkannya dari sana dengan nama.
  • .h5 - format hdf5 biner. Perlu dicatat bahwa di dalamnya Anda dapat menyimpan seluruh struktur data hierarkis, hampir merupakan sistem file dalam satu file. Selain itu, dapat dibuka di matlab tanpa konversi. Cons:

    a) file kecil memakan ruang besar yang tidak masuk akal (misalnya, 300 byte pkl vs 3,1 Mb untuk h5),
    b) banyak bug ,
    c) ada penambahan ke file yang sudah ada, tetapi jika terjadi kesalahan (seperti yang terjadi), mendapatkan data darinya akan bermasalah.

    Berikut ini adalah analisis rinci tentang pro dan kontra hdf5, singkatnya - format yang baik untuk bertukar data, buruk - untuk digunakan sebagai sistem file (misalnya, Anda tidak dapat menghapus array, cukup salin file tanpa itu).
  • .parquet adalah format biner untuk data besar. Apache Parket bukan format Python asli, tetapi terintegrasi dengan baik ke dalam panda. Anda dapat mengompres / memperluas dengan cepat (rle, gzip, kamus encoding); kompres sedikit lebih baik daripada Apache Avro. Tidak seperti avro, di mana data disimpan baris demi baris (seperti pesanan C), dalam data parket disimpan kolom demi kolom (seperti urutan fortran). Berkat ini, Anda dapat bekerja secara efektif dengan tabel dengan sejumlah besar kolom.
  • jupyter memutuskan untuk tidak menemukan kembali roda -% store menyimpannya dalam format .pkl, tetapi untuk beberapa alasan tanpa ekstensi.

Lembar data itu sendiri:

- dalam format pdf
- dalam format png:

Contoh menggunakan semua fungsi dari diagram: html dengan daftar isi dan sumber ipynb

Source: https://habr.com/ru/post/id481140/


All Articles