Di Pandas, Anda dapat menyimpan DataFrame ke file CSV menggunakan metode df.to_csv('your_file_name.csv', index=False), di mana df adalah DataFrame Anda dan index=False mencegah penambahan kolom indeks.
Jika Anda membuat DataFrame atau memodifikasi yang sudah ada, Anda mungkin ingin mengekspornya agar orang lain dapat menggunakannya, atau menyimpannya untuk pekerjaan Anda di masa mendatang. Misalnya, Anda mungkin harus mengirimkan prediksi dari proyek machine learning kepada penguji Anda atau mengirim dataset yang telah dimodifikasi kepada rekan kerja.
Di Python, Anda dapat mengekspor DataFrame sebagai file CSV menggunakan metode .to_csv() milik Pandas.
Dalam artikel ini, saya akan memandu Anda melalui langkah-langkah utama prosesnya dan menjelaskan parameter metodenya.
Saya akan mulai dengan jawaban singkat bagi Anda yang sedang terburu-buru, lalu masuk ke detailnya.
Jawaban Singkat: Cara Menyimpan Pandas DataFrame ke CSV
Untuk menyimpan Pandas DataFrame sebagai CSV, gunakan metode DataFrame.to_csv():
df.to_csv('your_file_name.csv', index=False)Didukung oleh
Ganti 'your_file_name.csv' dengan nama dan path yang diinginkan untuk file Anda. Argumen index=False mencegah Pandas menambahkan kolom indeks ke CSV Anda.
Membuat Pandas DataFrame
Sekarang, mari kita lihat jawaban yang lebih panjang. Alih-alih membuat DataFrame dari nol, saya akan mengimpor sebuah dataset, memodifikasinya, dan menyimpan DataFrame hasilnya dalam format CSV. Langkah pertama adalah mengimpor pustaka yang diperlukan:
import pandas as pd
import seaborn as sns
from sklearn.preprocessing import MinMaxScalerDidukung oleh
Lalu, kita dapat mengimpor sebuah dataset seaborn. Dataset yang diimpor sudah berupa Pandas DataFrame, jadi kita tidak perlu mengubahnya.
# We’ll import the 'titanic' dataset from seaborn
df = sns.load_dataset('titanic')print(df.head())Didukung oleh
survived pclass sex age sibsp parch fare embarked class
0 0 3 male 22.0 1 0 7.2500 S Third
1 1 1 female 38.0 1 0 71.2833 C First
2 1 3 female 26.0 0 0 7.9250 S Third
3 1 1 female 35.0 1 0 53.1000 S First
4 0 3 male 35.0 0 0 8.0500 S Third
who adult_male deck embark_town alive alone
0 man True NaN Southampton no False
1 woman False C Cherbourg yes False
2 woman False NaN Southampton yes True
3 woman False C Southampton yes False
4 man True NaN Southampton no True Didukung oleh
Memodifikasi Pandas DataFrame
Sekarang, mari lakukan beberapa pemrosesan untuk mendapatkan DataFrame baru. Karena tujuan saya adalah mengeksplorasi metode .to_csv()dari Pandas, saya hanya akan melakukan normalisasi min-max pada variabel numerik.
scaler = MinMaxScaler()# Choose the columns that have integer or float data-types
numerical columns - df.select_dtypes(include=['float64','int64']).columns
new_df = df.copy()# The min-max scaler will represent all numbers on a 0-to-1 scale
new_df[numerical_columns]= scaler.fit_transform(df[numerical_columns])print(new_df.head())Didukung oleh
survived pclass sex age sibsp parch fare embarked
0 0.0 1.0 male 0.271174 0.125 0.0 0.014151 S
1 1.0 0.0 female 0.472229 0.125 0.0 0.139136 C
2 1.0 1.0 female 0.321438 0.000 0.0 0.015469 S
3 1.0 0.0 female 0.434531 0.125 0.0 0.103644 S
4 0.0 1.0 male 0.434531 0.000 0.0 0.015713 S
class who adult_male deck embark_town alive alone
Third man True NaN Southampton no False
First woman False C Cherbourg yes False
Third woman False NaN Southampton yes True
First woman False C Southampton yes False
Third man True NaN Southampton no True Didukung oleh
Menyimpan Pandas DataFrame sebagai CSV
Kita akan menggunakan metode DataFrame.to_csv() untuk menyimpan DataFrame yang telah dimodifikasi sebagai file CSV.
Cara saya memanggil metode ini memastikan semua parameter diatur ke nilai defaultnya. Sekarang, saya akan memaparkan parameter-parameter tersebut dan bagaimana Anda dapat mengubah nilainya sesuai kebutuhan.
Penjelasan Parameter DataFrame.to_csv()
Berikut adalah metode .to_csv() yang sama dengan semua parameternya:
Beberapa parameter ini bersifat opsional, seperti columns, encoding,quoting,lineterminator dan storage_options, jadi saya hanya menetapkan nilai untuknya, tidak harus nilai default.
Parameter pertama bisa berupa string, yang akan menjadi nama file, atau objek file. Lihat contoh ini:
withopen('new_titanic.csv','w', encoding ='utf=8')asfile:
new_df.to_csv(file)Didukung oleh
Pemisah dan nilai yang hilang
Parameter berikutnya adalah pemisah, yang mengacu pada bagaimana data dipisahkan. Pemisah default adalah koma, tetapi kita dapat mengubahnya menjadi tab atau titik koma. Pemisah tab atau titik koma bisa berguna ketika data ekspor Anda harus dalam format tertentu. Selain itu, untuk data yang mengandung koma, seperti teks, menggunakan koma sebagai pemisah dapat menimbulkan perubahan yang tidak diinginkan.
Misalnya, jika Anda memiliki ‘Hello, world’ sebagai sebuah datapoint, maka jika Anda ingin menggunakan pemisah koma, Anda juga memerlukan tanda kutip untuk menjaganya tetap sebagai satu datapoint. Menggunakan pemisah tab atau titik koma bisa menjadi pilihan yang lebih baik karena mungkin memakan lebih sedikit memori daripada menggunakan koma dan tanda kutip.
new_df.to_csv('new_titanic.csv', sep ='\t')
new_df_tab = pd.read_csv('new_titanic.csv')Didukung oleh
0\t0\t3\tmale\t22.0\t1\t0\t7.25\tS\tThird\tman...
1\t1\t1\tfemale\t38.0\t1\t0\t71.2833\tC\tFirst...
2\t1\t3\tfemale\t26.0\t0\t0\t7.925\tS\tThird\t...
3\t1\t1\tfemale\t35.0\t1\t0\t53.1\tS\tFirst\tw...
4\t0\t3\tmale\t35.0\t0\t0\t8.05\tS\tThird\tman... Didukung oleh
Parameter ketiga, na_rep, mengacu pada representasi nilai yang hilang. Pilihan umum adalah membiarkan sel kosong untuk memasukkan ‘NaN’ atau ‘Na’, tetapi Anda juga dapat memasukkan string kustom. Saya akan memasukkan ‘Datacamp’ dalam contoh berikut untuk setiap nilai yang hilang.
new_df.to_csv('new_titanic.csv', na_rep='Datacamp')
new_df_datacamp = pd.read_csv('new_titanic.csv')
new_df_datacamp = pd.DataFrame(new_df_datacamp)#find the missing values
missing_values = new_df_datacamp.isnull().sum()print(missing_values)Didukung oleh
survived 0
pclass 0
sex 0
age 177
sibsp 0
parch 0
fare 0
embarked 2
class 0
who 0
adult_male 0
deck 688
embark_town 2
alive 0
alone 0Didukung oleh
Menangani kolom dan indeks
Mari kita lihat bagaimana nilai yang hilang direpresentasikan untuk kolom age:
Jika Anda menginginkan jumlah desimal yang lebih sedikit, gunakan parameter float_formatuntuk menentukan jumlah desimal. Di sini, kita akan menggunakan tiga saja.
new_df.to_csv('new_titanic.csv', na_rep='Datacamp', float_format='%.3f')
new_df_datacamp = pd.read_csv('new_titanic.csv')
new_df_datacamp = pd.DataFrame(new_df_datacamp)print(new_df_datacamp['age'][:10])Didukung oleh
Jika Anda tidak ingin melihat indeks, setel parameter indexmenjadi False.
Anda juga dapat memutuskan apakah akan mempertahankan nama kolom, menggunakan parameter headerdan menyetelnya ke True atau False, yang merupakan cara yang tepat (atau Anda dapat menetapkan nama untuk kolom).
Parameter columnsmemungkinkan Anda memilih kolom mana yang akan dipertahankan. Parameter index_labelmemungkinkan Anda menetapkan nama untuk kolom indeks atau daftar nama jika Anda memiliki beberapa indeks.
Index age alive
0 0.271174 no
1 0.472229 yes
2 0.321438 yes
3 0.434531 yes
4 0.434531 noDidukung oleh
Pembukaan file, encoding, dan kompresi
Parametermodememungkinkan Anda memutuskan apa yang harus dilakukan saat Anda sudah memiliki file CSV dengan nama yang sama seperti yang Anda buat. Jika Anda menyetel parameter ke ‘w’ dan sudah memiliki file new_titanic.csv, file yang Anda buat akan menggantikan yang lama. Jika Anda menyetelnya ke ‘x’, file baru dibuat hanya jika tidak ada file yang ada dengan nama yang sama. Terakhir, jika Anda menyetel parameter ke ‘a’, file baru akan ditambahkan ke file lama dengan nama yang sama (mungkin Anda hanya ingin menambahkan beberapa baris).
Parameter encoding menetapkan encoding untuk file baru. Jika data Anda berisi karakter khusus, seperti huruf dari alfabet lain, Anda dapat menyetelnya ke ‘utf-8’ atau encoding lainnya.
Parameter compressionmenetapkan cara file baru dikompresi. Secara default, disetel ke ‘infer’, yang berarti mengompresi file sesuai ekstensi yang ditentukan, tetapi Anda juga dapat menentukan ekstensi yang Anda inginkan.
# Infer the compression
new_df.to_csv('new_titanic.csv.gz')# Specify the compression explicitly
new_df.to_csv('new_data.csv.gz', compression='gzip')# Specify the compression via a dictionary
new_df.to_csv('new_data.zip',
compression={'method':'zip','archive_name':'data.csv'})Didukung oleh
Cara menggunakan quoting
Parameter quotingmenetapkan jenis data yang akan diberi tanda kutip. Seperti yang saya sebutkan sebelumnya, saat Anda memiliki pemisah koma dan juga sel yang berisi koma (seperti teks), Anda harus memutuskan apa yang harus diberi tanda kutip.
# Default value, quotes only fields with special characters or separators like tabs and commas
new_df.to_csv('new_titanic.csv', quoting=csv.QUOTE_MINIMAL)# Quotes all fields
new_df.to_csv('new_titanic.csv', quoting=csv.QUOTE_ALL)# Quotes only fields with non-numeric values
new_df.to_csv('new_titanic.csv', quoting=csv.QUOTE_NONNUMERIC)# No field is quoted
new_df.to_csv('new_titanic.csv', quoting=csv.QUOTE_NONE)Didukung oleh
Ukuran chunk dan data tanggal-waktu
Parameter chunksize menentukan berapa banyak bagian file yang akan ditulis sekaligus. Dengan membiarkan nilai default, semua baris ditulis sekaligus, tetapi Anda dapat menentukan sebuah angka, yang berguna ketika file sangat besar.
Parameter date_format menetapkan representasi objek datetime. Anda dapat menentukannya menggunakan format strftime.
# Write DataFrame to CSV with dates formatted as 'MM/DD/YYYY'
new_df.to_csv('new_titanic.csv', date_format='%m/%d/%Y')# You can set datetime objects up to seconds
new_df.to_csv('new_titanic.csv', date_format='%Y-%m-%d %H:%M:%S')Didukung oleh
Kesimpulan
Semoga sekarang Anda siap mengekspor DataFrame dalam format yang sesuai dengan kebutuhan Anda!
Saya mendorong Anda untuk terus belajar—berikut beberapa sumber yang bisa Anda coba:
Saya sedang menyelesaikan gelar magister di bidang data science di University of Bucharest, Rumania, dengan tesis tentang prediksi arus lalu lintas menggunakan berbagai model berbasis Graph Neural Networks. Keahlian utama yang saya pelajari meliputi pembersihan dan visualisasi data di Python dan Power BI, prapemrosesan untuk berbagai tugas machine learning, serta membangun model dengan PyTorch (atau TensorFlow). Pada saat yang sama, sebagai mahasiswa doktoral (PhD) di bidang filsafat, saya mengajar seminar tentang logika orde pertama sambil mengerjakan tesis mengenai teori konfirmasi Bayesian. Saya bersemangat untuk mempelajari lebih banyak tentang data dan pengembangan model, serta mengajarkan apa yang saya pelajari.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Jika Anda membuat DataFrame atau memodifikasi yang sudah ada, Anda mungkin ingin mengekspornya agar orang lain dapat menggunakannya, atau menyimpannya untuk pekerjaan Anda di masa mendatang. Misalnya, Anda mungkin harus mengirimkan prediksi dari proyek machine learning kepada penguji Anda atau mengirim dataset yang telah dimodifikasi kepada rekan kerja.
Di Python, Anda dapat mengekspor DataFrame sebagai file CSV menggunakan metode
.to_csv()milik Pandas.Dalam artikel ini, saya akan memandu Anda melalui langkah-langkah utama prosesnya dan menjelaskan parameter metodenya.
Jika Anda ingin mempelajari lebih lanjut tentang Pandas, lihat kursus ini tentang Manipulasi Data dengan Pandas.
Saya akan mulai dengan jawaban singkat bagi Anda yang sedang terburu-buru, lalu masuk ke detailnya.
Jawaban Singkat: Cara Menyimpan Pandas DataFrame ke CSV
Untuk menyimpan Pandas DataFrame sebagai CSV, gunakan metode
DataFrame.to_csv():Ganti
'your_file_name.csv'dengan nama dan path yang diinginkan untuk file Anda. Argumenindex=Falsemencegah Pandas menambahkan kolom indeks ke CSV Anda.Membuat Pandas DataFrame
Sekarang, mari kita lihat jawaban yang lebih panjang. Alih-alih membuat DataFrame dari nol, saya akan mengimpor sebuah dataset, memodifikasinya, dan menyimpan DataFrame hasilnya dalam format CSV. Langkah pertama adalah mengimpor pustaka yang diperlukan:
Lalu, kita dapat mengimpor sebuah dataset
seaborn. Dataset yang diimpor sudah berupa Pandas DataFrame, jadi kita tidak perlu mengubahnya.Memodifikasi Pandas DataFrame
Sekarang, mari lakukan beberapa pemrosesan untuk mendapatkan DataFrame baru. Karena tujuan saya adalah mengeksplorasi metode
.to_csv()dari Pandas, saya hanya akan melakukan normalisasi min-max pada variabel numerik.Menyimpan Pandas DataFrame sebagai CSV
Kita akan menggunakan metode
DataFrame.to_csv()untuk menyimpan DataFrame yang telah dimodifikasi sebagai file CSV.Ini akan menyimpan file CSV di direktori saat ini. Jika Anda perlu penyegar ingatan, baca tutorial ini tentang cara mendapatkan direktori saat ini di Python.
Cara saya memanggil metode ini memastikan semua parameter diatur ke nilai defaultnya. Sekarang, saya akan memaparkan parameter-parameter tersebut dan bagaimana Anda dapat mengubah nilainya sesuai kebutuhan.
Penjelasan Parameter
DataFrame.to_csv()Berikut adalah metode
.to_csv()yang sama dengan semua parameternya:Beberapa parameter ini bersifat opsional, seperti
columns,encoding,quoting,lineterminatordanstorage_options, jadi saya hanya menetapkan nilai untuknya, tidak harus nilai default.Parameter pertama bisa berupa string, yang akan menjadi nama file, atau objek file. Lihat contoh ini:
Pemisah dan nilai yang hilang
Parameter berikutnya adalah pemisah, yang mengacu pada bagaimana data dipisahkan. Pemisah default adalah koma, tetapi kita dapat mengubahnya menjadi tab atau titik koma. Pemisah tab atau titik koma bisa berguna ketika data ekspor Anda harus dalam format tertentu. Selain itu, untuk data yang mengandung koma, seperti teks, menggunakan koma sebagai pemisah dapat menimbulkan perubahan yang tidak diinginkan.
Misalnya, jika Anda memiliki ‘Hello, world’ sebagai sebuah datapoint, maka jika Anda ingin menggunakan pemisah koma, Anda juga memerlukan tanda kutip untuk menjaganya tetap sebagai satu datapoint. Menggunakan pemisah tab atau titik koma bisa menjadi pilihan yang lebih baik karena mungkin memakan lebih sedikit memori daripada menggunakan koma dan tanda kutip.
Parameter ketiga,
na_rep, mengacu pada representasi nilai yang hilang. Pilihan umum adalah membiarkan sel kosong untuk memasukkan‘NaN’atau‘Na’, tetapi Anda juga dapat memasukkan string kustom. Saya akan memasukkan‘Datacamp’dalam contoh berikut untuk setiap nilai yang hilang.Menangani kolom dan indeks
Mari kita lihat bagaimana nilai yang hilang direpresentasikan untuk kolom
age:Jika Anda menginginkan jumlah desimal yang lebih sedikit, gunakan parameter
float_formatuntuk menentukan jumlah desimal. Di sini, kita akan menggunakan tiga saja.Jika Anda tidak ingin melihat indeks, setel parameter
indexmenjadiFalse.Anda juga dapat memutuskan apakah akan mempertahankan nama kolom, menggunakan parameter
headerdan menyetelnya keTrueatauFalse, yang merupakan cara yang tepat (atau Anda dapat menetapkan nama untuk kolom).Parameter
columnsmemungkinkan Anda memilih kolom mana yang akan dipertahankan. Parameterindex_labelmemungkinkan Anda menetapkan nama untuk kolom indeks atau daftar nama jika Anda memiliki beberapa indeks.Pembukaan file, encoding, dan kompresi
Parameter
modememungkinkan Anda memutuskan apa yang harus dilakukan saat Anda sudah memiliki file CSV dengan nama yang sama seperti yang Anda buat. Jika Anda menyetel parameter ke‘w’dan sudah memiliki filenew_titanic.csv, file yang Anda buat akan menggantikan yang lama. Jika Anda menyetelnya ke‘x’, file baru dibuat hanya jika tidak ada file yang ada dengan nama yang sama. Terakhir, jika Anda menyetel parameter ke‘a’, file baru akan ditambahkan ke file lama dengan nama yang sama (mungkin Anda hanya ingin menambahkan beberapa baris).Parameter encoding menetapkan encoding untuk file baru. Jika data Anda berisi karakter khusus, seperti huruf dari alfabet lain, Anda dapat menyetelnya ke
‘utf-8’atau encoding lainnya.Parameter
compressionmenetapkan cara file baru dikompresi. Secara default, disetel ke‘infer’, yang berarti mengompresi file sesuai ekstensi yang ditentukan, tetapi Anda juga dapat menentukan ekstensi yang Anda inginkan.Cara menggunakan quoting
Parameter
quotingmenetapkan jenis data yang akan diberi tanda kutip. Seperti yang saya sebutkan sebelumnya, saat Anda memiliki pemisah koma dan juga sel yang berisi koma (seperti teks), Anda harus memutuskan apa yang harus diberi tanda kutip.Ukuran chunk dan data tanggal-waktu
Parameter
chunksizemenentukan berapa banyak bagian file yang akan ditulis sekaligus. Dengan membiarkan nilai default, semua baris ditulis sekaligus, tetapi Anda dapat menentukan sebuah angka, yang berguna ketika file sangat besar.Parameter
date_formatmenetapkan representasi objek datetime. Anda dapat menentukannya menggunakan format strftime.Kesimpulan
Semoga sekarang Anda siap mengekspor DataFrame dalam format yang sesuai dengan kebutuhan Anda!
Saya mendorong Anda untuk terus belajar—berikut beberapa sumber yang bisa Anda coba: