Menulis DataFrames ke File
Ekspor DataFrame yang telah dibersihkan ke CSV dan Excel dengan to_csv dan to_excel, sambil mengatur indeks dan format float
Menulis DataFrames ke File adalah pelajaran Pandas & NumPy Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Pandas & NumPy Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.
Mengapa Ekspor Penting
Analisis data jarang berakhir di dalam Python. Anda perlu membagikan kumpulan data yang telah dibersihkan kepada pemangku kepentingan, memasukkan hasil ke alat lain, atau mengarsipkan data yang telah diproses agar dapat direproduksi. Pandas menyediakan to_csv(), to_excel(), to_json(), dan to_parquet()—yang mencerminkan fungsi pembaca dan menerima sebagian besar parameter konfigurasi yang sama.
import pandas as pd
df = pd.DataFrame({'name': ['A', 'B'], 'score': [90, 75]})
df.to_csv('results.csv')
df.to_excel('results.xlsx')
df.to_json('results.json', orient='records')to_csv(): Masalah Indeks
Secara default, to_csv() menulis indeks baris sebagai kolom pertama, sehingga menghasilkan kolom unnamed: 0 saat berkas dibaca kembali. Teruskan index=False untuk menghilangkan indeks—hampir selalu merupakan pilihan yang tepat, kecuali indeks itu sendiri adalah data yang bermakna, seperti tanggal. Selalu tentukan index=False kecuali Anda memiliki alasan khusus untuk menyertakan indeks.
import pandas as pd
df = pd.DataFrame({'a': [1, 2], 'b': [3, 4]})
# Include index (default -- creates 'Unnamed: 0' when re-read)
df.to_csv('with_index.csv')
# Exclude index (recommended)
df.to_csv('clean.csv', index=False)Mengontrol Pembatas dan Pengodean
Teruskan sep= untuk menulis berkas yang dipisahkan tab atau titik koma. Gunakan encoding= untuk menentukan UTF-8 atau kumpulan karakter lain—hal yang penting jika nilai kolom berisi karakter non-ASCII seperti aksen atau karakter Tionghoa. encoding='utf-8-sig' menambahkan BOM (tanda urutan byte) agar kompatibel dengan Excel di Windows.
import pandas as pd
df = pd.DataFrame({'name': ['Müller', 'Tanaka'], 'val': [1, 2]})
# Tab-separated, UTF-8
df.to_csv('output.tsv', sep='\t', encoding='utf-8', index=False)
# Excel-compatible UTF-8 with BOM
df.to_csv('for_excel.csv', encoding='utf-8-sig', index=False)Mengontrol Pemformatan Float
Secara default, Pandas menulis float dengan presisi penuh. Gunakan float_format='%.2f' untuk membatasi hingga 2 angka desimal—hal yang penting untuk data keuangan karena angka desimal tambahan tampak keliru bagi pembaca. Teruskan na_rep='NULL' atau na_rep='' untuk mengatur cara nilai NaN ditulis dalam berkas keluaran.
import pandas as pd
import numpy as np
df = pd.DataFrame({'price': [9.99, np.nan, 14.123456],
'qty': [1, 2, 3]})
df.to_csv('prices.csv',
index=False,
float_format='%.2f',
na_rep='N/A')to_excel(): Menulis Lembar
df.to_excel('file.xlsx', sheet_name='Data', index=False) menulis DataFrame ke buku kerja Excel. Seperti to_csv(), tetapkan index=False kecuali indeks bermakna. Parameter startrow= dan startcol= memungkinkan Anda menempatkan tabel di dalam lembar—berguna untuk menambahkan baris judul di atas data.
import pandas as pd
df = pd.DataFrame({'product': ['A', 'B'], 'sales': [100, 200]})
df.to_excel('report.xlsx',
sheet_name='Sales',
index=False,
startrow=1) # leave row 0 for a titleMenulis Beberapa Lembar dengan ExcelWriter
Untuk menulis beberapa DataFrames ke lembar yang berbeda dalam buku kerja yang sama, gunakan pd.ExcelWriter sebagai pengelola konteks. Panggil df.to_excel(writer, sheet_name='Name') untuk setiap DataFrame di dalam blok with. Buku kerja diselesaikan dan disimpan saat konteks keluar. Cara ini menghindari pembuatan beberapa berkas terpisah untuk tabel yang saling berkaitan.
import pandas as pd
df1 = pd.DataFrame({'a': [1, 2]})
df2 = pd.DataFrame({'b': [3, 4]})
with pd.ExcelWriter('multi_sheet.xlsx', engine='openpyxl') as writer:
df1.to_excel(writer, sheet_name='Sheet1', index=False)
df2.to_excel(writer, sheet_name='Sheet2', index=False)to_json(): Mengekspor JSON
df.to_json() menserialisasikan DataFrame menjadi JSON. Parameter orient= mencerminkan read_json: gunakan 'records' untuk daftar dict baris (paling mudah dioperasikan bersama), 'columns' untuk dict larik kolom, atau 'index' untuk dict dengan kunci berupa label baris. Teruskan indent=2 untuk pemformatan yang mudah dibaca manusia.
import pandas as pd
df = pd.DataFrame({'name': ['A', 'B'], 'score': [90, 75]})
print(df.to_json(orient='records', indent=2))
# [
# {"name": "A", "score": 90},
# {"name": "B", "score": 75}
# ]Menambahkan ke Berkas yang Sudah Ada
Untuk menambahkan baris ke CSV yang sudah ada tanpa menimpanya, buka berkas dalam mode penambahan menggunakan mode='a' dan tetapkan header=False agar baris header tidak digandakan. Untuk Excel, gunakan ExcelWriter dengan mode='a'. Untuk alur pemrosesan besar yang dialirkan, tambahkan data per bagian dan tulis header hanya pada bagian pertama.
import pandas as pd
df_new = pd.DataFrame({'a': [5, 6], 'b': [7, 8]})
# Append to existing file, skip writing header
df_new.to_csv('existing.csv',
mode='a',
header=False,
index=False)Memilih Kolom Sebelum Ekspor
Praktik yang baik sebelum mengekspor adalah memilih hanya kolom yang diperlukan penerima dan mengurutkan baris dalam urutan yang logis. Ini membuat berkas keluaran lebih rapi dan mencegah kebocoran kolom internal secara tidak sengaja, seperti ID internal, fitur yang dikodekan, atau penanda debug. Gunakan pemilihan dengan tanda kurung siku dan sort_values() dalam ekspresi alur pemrosesan yang sama sebelum menulis.
import pandas as pd
df = pd.DataFrame({'id': [3,1,2],
'name': ['C','A','B'],
'_internal': [9,7,8]})
(df[['id', 'name']]
.sort_values('id')
.to_csv('export.csv', index=False))Memverifikasi Berkas yang Ditulis
Setelah menulis, selalu baca kembali berkas dan verifikasi: periksa shape, nama kolom, serta beberapa nilai secara acak. Untuk alur pemrosesan CI, bandingkan checksum. Untuk ekspor keuangan yang penting, pastikan total agregat sesuai. Langkah ini mendeteksi masalah pengodean, kehilangan presisi float, dan masalah indeks sebelum berkas diterima oleh pengguna hilir.
import pandas as pd
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
df.to_csv('/tmp/check.csv', index=False)
df_check = pd.read_csv('/tmp/check.csv')
assert df_check.shape == df.shape, 'Row/column count mismatch'
assert list(df_check.columns) == list(df.columns)
print('Export verified OK')Parquet: Alternatif Data yang Lebih Baik
Untuk dataset analitis berukuran besar, pertimbangkan format Parquet sebagai pengganti CSV. Parquet menyimpan data dalam format kolom, mendukung kompresi, mempertahankan dtype secara tepat, dan membaca data 10–100 kali lebih cepat untuk kueri analitis. Tulis dengan df.to_parquet('data.parquet') dan baca dengan pd.read_parquet('data.parquet'). Format ini memerlukan pyarrow atau fastparquet yang sudah terpasang.
import pandas as pd
df = pd.DataFrame({'a': range(1000000), 'b': range(1000000)})
df.to_parquet('data.parquet', index=False)
df2 = pd.read_parquet('data.parquet')
print(df2.dtypes) # dtypes preserved exactlyPemeriksaan Cepat
Uji pemahaman Anda tentang penulisan DataFrames ke file dari pelajaran ini.
Ringkasan Pelajaran
Dalam pelajaran ini Anda mempelajari bahwa: to_csv() dan to_excel() mengekspor DataFrames dan secara bawaan keduanya menyertakan indeks — selalu tetapkan index=False agar hasilnya bersih, ExcelWriter memungkinkan penulisan beberapa DataFrames ke lembar terpisah dalam satu buku kerja, dan Parquet merupakan alternatif yang lebih cepat serta lebih hemat ruang daripada CSV untuk dataset analitis berukuran besar. Selanjutnya, kita akan memuat file CSV jarak jauh dari URL dan mengurai string CSV di memori dengan io.StringIO.
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menulis DataFrames ke File” gratis?
Ya — teks lengkap “Menulis DataFrames ke File” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Pandas & NumPy Academy, upgrade ke CoddyKit PRO. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Menulis DataFrames ke File”?
Ekspor DataFrame yang telah dibersihkan ke CSV dan Excel dengan to_csv dan to_excel, sambil mengatur indeks dan format float Kamu berlatih Pandas & NumPy Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Pandas & NumPy Academy?
Tidak diperlukan pengalaman sebelumnya. Pandas & NumPy Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Menulis DataFrames ke File” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Pandas & NumPy Academy ini?
Ya. Setiap pelajaran Pandas & NumPy Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membaca File CSV
- Membaca File Excel dan JSON
- Menulis DataFrames ke File
- Membaca dari URL dan StringIO