Bir Pandas DataFrame'ini CSV Olarak Nasıl Kaydedersiniz
Pandas'ta bir DataFrame'i df.to_csv('your_file_name.csv', index=False) yöntemiyle CSV dosyasına kaydedebilirsiniz; burada df sizin DataFrame'inizdir ve index=False bir indeks sütununun eklenmesini engeller.
Bir DataFrame oluşturur ya da mevcut birini değiştirirseniz, başkalarının üzerinde çalışabilmesi için dışa aktarmak ya da gelecekteki çalışmalarınız için kaydetmek isteyebilirsiniz. Örneğin, bir makine öğrenmesi projesinden bir tahmini değerlendiricinize göndermeniz ya da değiştirilmiş bir veri kümesini bir çalışma arkadaşınıza iletmeniz gerekebilir.
Python'da, bir DataFrame'i Pandas'ın .to_csv()yöntemini kullanarak CSV dosyası olarak dışa aktarabilirsiniz.
Bu yazıda, sürecin temel adımlarında sizi yönlendirecek ve yöntemin parametrelerini açıklayacağım.
'your_file_name.csv' ifadesini dosyanız için istediğiniz ad ve yol ile değiştirin. index=False bağımsız değişkeni, Pandas'ın CSV'nize bir indeks sütunu eklemesini engeller.
Bir Pandas DataFrame'i Oluşturma
Şimdi daha uzun cevaba bakalım. Sıfırdan bir DataFrame oluşturmak yerine, bir veri kümesini içe aktaracağım, üzerinde değişiklik yapacağım ve ortaya çıkan DataFrame'i CSV formatında kaydedeceğim. İlk adım gerekli kütüphaneleri içe aktarmaktır:
import pandas as pd
import seaborn as sns
from sklearn.preprocessing import MinMaxScalerAltyapı:
Ardından bir seaborn veri kümesini içe aktarabiliriz. İçe aktarılan veri kümesi zaten bir Pandas DataFrame'idir, bu yüzden dönüştürmemize gerek yok.
# We’ll import the 'titanic' dataset from seaborn
df = sns.load_dataset('titanic')print(df.head())Altyapı:
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 Altyapı:
Bir Pandas DataFrame'ini Değiştirme
Şimdi yeni bir DataFrame elde etmek için biraz işlem yapalım. Amacım Pandas'taki .to_csv()yöntemini incelemek olduğundan, yalnızca sayısal değişkenlerde min-maks normalizasyonu yapacağım.
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())Altyapı:
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 Altyapı:
Bir Pandas DataFrame'ini CSV Olarak Kaydetme
Değiştirilmiş DataFrame'i bir CSV dosyası olarak kaydetmek için DataFrame.to_csv() yöntemini kullanacağız.
Bu, CSV dosyasını mevcut dizine kaydeder. Hatırlatmaya ihtiyacınız varsa, Python'da geçerli dizin nasıl alınır konulu bu eğitimi okuyun.
Bu yöntemi çağırma şeklim, tüm parametrelerin varsayılan değerlere ayarlanmasını sağladı. Şimdi parametreleri ve ihtiyaçlarınıza göre değerlerini nasıl değiştirebileceğinizi sunacağım.
DataFrame.to_csv() Parametrelerinin Açıklaması
İşte aynı .to_csv() yöntemi, tüm parametreleriyle listelenmiş hâli:
Bu parametrelerden bazıları isteğe bağlıdır; örneğin columns, encoding,quoting,lineterminator ve storage_options; bu nedenle onlar için değerler belirttim, ancak bunlar illa ki varsayılan değerler değildir.
İlk parametre bir dosya adı olacak bir dize ya da bir dosya nesnesi olabilir. Şu örneğe bakın:
Sıradaki parametre ayırıcıdır ve verilerin nasıl ayrılacağını ifade eder. Varsayılan ayırıcı virgüldür, ancak bunu sekme ya da noktalı virgül olarak değiştirebiliriz. Dışa aktarılan verilerinizin belirli bir formatta olması gerektiğinde sekme ya da noktalı virgül ayırıcı yararlı olabilir. Ayrıca, metin gibi virgül içeren verilerde ayırıcı olarak virgül kullanmak istenmeyen değişikliklere yol açabilir.
Örneğin, bir veri noktası olarak ‘Hello, world’ varsa ve ayırıcı olarak virgül kullanmak istiyorsanız, onu tek bir veri noktası olarak tutmak için ayrıca tırnak işareti de gerekir. Bunun yerine sekme ya da noktalı virgül kullanmak daha iyi bir seçenek olabilir; çünkü virgül ve tırnak işaretleri kullanmaya kıyasla daha az bellek tüketebilir.
Üçüncü parametre olan na_rep, eksik değerlerin nasıl gösterileceğini belirler. Yaygın seçenekler, hücreyi boş bırakmak ya da ‘NaN’ veya ‘Na’ eklemektir; ancak özel bir dize de ekleyebilirsiniz. Aşağıdaki örnekte, her eksik değer için ‘Datacamp’ ekleyeceğim.
İndeksi görmek istemiyorsanız, indexparametresini False olarak ayarlayın.
Ayrıca headerparametresini kullanıp True ya da False ayarlayarak sütun adlarını tutup tutmayacağınıza karar verebilirsiniz (ya da sütunlar için adları belirleyebilirsiniz).
columnsparametresi hangi sütunların tutulacağını seçmenize olanak tanır. index_labelparametresi, indeks sütunu için bir ad belirlemenize ya da birden fazla indeksiniz varsa adlardan oluşan bir liste vermenize olanak tanır.
Index age alive
0 0.271174 no
1 0.472229 yes
2 0.321438 yes
3 0.434531 yes
4 0.434531 noAltyapı:
Dosya açma, kodlama ve sıkıştırma
modeparametresi, oluşturduğunuz dosyayla aynı ada sahip bir CSV dosyanız zaten olduğunda ne yapılacağını belirlemenizi sağlar. Parametreyi ‘w’ olarak ayarlar ve zaten bir new_titanic.csvdosyanız varsa, oluşturduğunuz yeni dosya eskisinin yerini alır. ‘x’ olarak ayarlarsanız, yeni dosya yalnızca aynı ada sahip mevcut bir dosya yoksa oluşturulur. Son olarak, parametreyi ‘a’ olarak ayarlarsanız, yeni dosya aynı adlı eski dosyaya eklenir (belki yalnızca birkaç satır eklemek istiyorsunuzdur).
Kodlama (encoding) parametresi yeni dosyanın kodlamasını ayarlar. Verileriniz başka alfabelerin harfleri gibi özel karakterler içeriyorsa, bunu ‘utf-8’ ya da başka bir kodlama olarak ayarlayabilirsiniz.
compressionparametresi yeni dosyanın nasıl sıkıştırılacağını belirler. Varsayılan olarak ‘infer’ şeklindedir; bu, sıkıştırma türünün belirtilen uzantıya göre belirleneceği anlamına gelir; ancak tercih ettiğiniz uzantıyı da belirtebilirsiniz.
# 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'})Altyapı:
Tırnaklama (quoting) nasıl kullanılır
quotingparametresi, hangi tür verilerin tırnak içine alınacağını ayarlar. Daha önce belirttiğim gibi, ayırıcı olarak virgül kullanırken ve hücreler de (metin gibi) virgül içeriyorsa, hangilerinin tırnak içine alınacağını belirlemeniz gerekir.
# 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)Altyapı:
Chunksize ve tarih-saat verileri
chunksize parametresi, dosyanızın bir seferde ne kadarının yazılacağını belirtir. Varsayılan değeri bıraktığınızda tüm satırlar bir seferde yazılır; ancak dosya çok büyük olduğunda kullanışlı olabilecek bir sayı belirtebilirsiniz.
date_format parametresi, datetime nesnelerinin gösterimini ayarlar. Bunu strftime formatını kullanarak belirtebilirsiniz.
# 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')Altyapı:
Sonuç
Umarım artık DataFrame'inizi ihtiyaçlarınıza uygun formatta dışa aktarmaya hazırsınızdır!
Öğrenmeye devam etmenizi öneririm—işte deneyebileceğiniz bazı kaynaklar:
Romanya, Bükreş Üniversitesi'nde veri bilimi yüksek lisansımı bitiriyorum; tez konum, Grafik Sinir Ağlarına dayalı çeşitli modeller kullanarak trafik akışı tahmini. Edindiğim başlıca beceriler Python ve Power BI ile veri temizleme ve görselleştirme, çeşitli makine öğrenimi görevleri için ön işleme ve PyTorch (veya TensorFlow) ile model oluşturma oldu. Aynı zamanda felsefe alanında doktora öğrencisi olarak birinci mertebe mantık üzerine seminerler veriyor ve Bayesyen doğrulama kuramı üzerine tezimi yazıyorum. Veriler ve model kurma hakkında daha fazla şey öğrenmeye ve öğrendiklerimi öğretmeye hevesliyim.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Bir DataFrame oluşturur ya da mevcut birini değiştirirseniz, başkalarının üzerinde çalışabilmesi için dışa aktarmak ya da gelecekteki çalışmalarınız için kaydetmek isteyebilirsiniz. Örneğin, bir makine öğrenmesi projesinden bir tahmini değerlendiricinize göndermeniz ya da değiştirilmiş bir veri kümesini bir çalışma arkadaşınıza iletmeniz gerekebilir.
Python'da, bir DataFrame'i Pandas'ın
.to_csv()yöntemini kullanarak CSV dosyası olarak dışa aktarabilirsiniz.Bu yazıda, sürecin temel adımlarında sizi yönlendirecek ve yöntemin parametrelerini açıklayacağım.
Pandas hakkında daha fazla bilgi edinmek isterseniz, şu kursa göz atın: Pandas ile Veri Manipülasyonu.
Acele edenler için hızlı bir yanıtla başlayacağım, ardından ayrıntılara gireceğim.
Kısa Cevap: Pandas DataFrame CSV'ye Nasıl Kaydedilir
Bir Pandas DataFrame'ini CSV olarak kaydetmek için
DataFrame.to_csv()yöntemini kullanın:'your_file_name.csv'ifadesini dosyanız için istediğiniz ad ve yol ile değiştirin.index=Falsebağımsız değişkeni, Pandas'ın CSV'nize bir indeks sütunu eklemesini engeller.Bir Pandas DataFrame'i Oluşturma
Şimdi daha uzun cevaba bakalım. Sıfırdan bir DataFrame oluşturmak yerine, bir veri kümesini içe aktaracağım, üzerinde değişiklik yapacağım ve ortaya çıkan DataFrame'i CSV formatında kaydedeceğim. İlk adım gerekli kütüphaneleri içe aktarmaktır:
Ardından bir
seabornveri kümesini içe aktarabiliriz. İçe aktarılan veri kümesi zaten bir Pandas DataFrame'idir, bu yüzden dönüştürmemize gerek yok.Bir Pandas DataFrame'ini Değiştirme
Şimdi yeni bir DataFrame elde etmek için biraz işlem yapalım. Amacım Pandas'taki
.to_csv()yöntemini incelemek olduğundan, yalnızca sayısal değişkenlerde min-maks normalizasyonu yapacağım.Bir Pandas DataFrame'ini CSV Olarak Kaydetme
Değiştirilmiş DataFrame'i bir CSV dosyası olarak kaydetmek için
DataFrame.to_csv()yöntemini kullanacağız.Bu, CSV dosyasını mevcut dizine kaydeder. Hatırlatmaya ihtiyacınız varsa, Python'da geçerli dizin nasıl alınır konulu bu eğitimi okuyun.
Bu yöntemi çağırma şeklim, tüm parametrelerin varsayılan değerlere ayarlanmasını sağladı. Şimdi parametreleri ve ihtiyaçlarınıza göre değerlerini nasıl değiştirebileceğinizi sunacağım.
DataFrame.to_csv()Parametrelerinin Açıklamasıİşte aynı
.to_csv()yöntemi, tüm parametreleriyle listelenmiş hâli:Bu parametrelerden bazıları isteğe bağlıdır; örneğin
columns,encoding,quoting,lineterminatorvestorage_options; bu nedenle onlar için değerler belirttim, ancak bunlar illa ki varsayılan değerler değildir.İlk parametre bir dosya adı olacak bir dize ya da bir dosya nesnesi olabilir. Şu örneğe bakın:
Ayırıcılar ve eksik değerler
Sıradaki parametre ayırıcıdır ve verilerin nasıl ayrılacağını ifade eder. Varsayılan ayırıcı virgüldür, ancak bunu sekme ya da noktalı virgül olarak değiştirebiliriz. Dışa aktarılan verilerinizin belirli bir formatta olması gerektiğinde sekme ya da noktalı virgül ayırıcı yararlı olabilir. Ayrıca, metin gibi virgül içeren verilerde ayırıcı olarak virgül kullanmak istenmeyen değişikliklere yol açabilir.
Örneğin, bir veri noktası olarak ‘Hello, world’ varsa ve ayırıcı olarak virgül kullanmak istiyorsanız, onu tek bir veri noktası olarak tutmak için ayrıca tırnak işareti de gerekir. Bunun yerine sekme ya da noktalı virgül kullanmak daha iyi bir seçenek olabilir; çünkü virgül ve tırnak işaretleri kullanmaya kıyasla daha az bellek tüketebilir.
Üçüncü parametre olan
na_rep, eksik değerlerin nasıl gösterileceğini belirler. Yaygın seçenekler, hücreyi boş bırakmak ya da‘NaN’veya‘Na’eklemektir; ancak özel bir dize de ekleyebilirsiniz. Aşağıdaki örnekte, her eksik değer için‘Datacamp’ekleyeceğim.Sütunlar ve indekslerle çalışmak
Gelin,
agesütunu için eksik değerlerin nasıl gösterildiğine bakalım:Daha az ondalık basamak istiyorsanız, ondalık sayısını belirtmek için
float_formatparametresini kullanın. Burada yalnızca üç basamak kullanacağız.İndeksi görmek istemiyorsanız,
indexparametresiniFalseolarak ayarlayın.Ayrıca
headerparametresini kullanıpTrueya daFalseayarlayarak sütun adlarını tutup tutmayacağınıza karar verebilirsiniz (ya da sütunlar için adları belirleyebilirsiniz).columnsparametresi hangi sütunların tutulacağını seçmenize olanak tanır.index_labelparametresi, indeks sütunu için bir ad belirlemenize ya da birden fazla indeksiniz varsa adlardan oluşan bir liste vermenize olanak tanır.Dosya açma, kodlama ve sıkıştırma
modeparametresi, oluşturduğunuz dosyayla aynı ada sahip bir CSV dosyanız zaten olduğunda ne yapılacağını belirlemenizi sağlar. Parametreyi‘w’olarak ayarlar ve zaten birnew_titanic.csvdosyanız varsa, oluşturduğunuz yeni dosya eskisinin yerini alır.‘x’olarak ayarlarsanız, yeni dosya yalnızca aynı ada sahip mevcut bir dosya yoksa oluşturulur. Son olarak, parametreyi‘a’olarak ayarlarsanız, yeni dosya aynı adlı eski dosyaya eklenir (belki yalnızca birkaç satır eklemek istiyorsunuzdur).Kodlama (encoding) parametresi yeni dosyanın kodlamasını ayarlar. Verileriniz başka alfabelerin harfleri gibi özel karakterler içeriyorsa, bunu
‘utf-8’ya da başka bir kodlama olarak ayarlayabilirsiniz.compressionparametresi yeni dosyanın nasıl sıkıştırılacağını belirler. Varsayılan olarak‘infer’şeklindedir; bu, sıkıştırma türünün belirtilen uzantıya göre belirleneceği anlamına gelir; ancak tercih ettiğiniz uzantıyı da belirtebilirsiniz.Tırnaklama (quoting) nasıl kullanılır
quotingparametresi, hangi tür verilerin tırnak içine alınacağını ayarlar. Daha önce belirttiğim gibi, ayırıcı olarak virgül kullanırken ve hücreler de (metin gibi) virgül içeriyorsa, hangilerinin tırnak içine alınacağını belirlemeniz gerekir.Chunksize ve tarih-saat verileri
chunksizeparametresi, dosyanızın bir seferde ne kadarının yazılacağını belirtir. Varsayılan değeri bıraktığınızda tüm satırlar bir seferde yazılır; ancak dosya çok büyük olduğunda kullanışlı olabilecek bir sayı belirtebilirsiniz.date_formatparametresi, datetime nesnelerinin gösterimini ayarlar. Bunu strftime formatını kullanarak belirtebilirsiniz.Sonuç
Umarım artık DataFrame'inizi ihtiyaçlarınıza uygun formatta dışa aktarmaya hazırsınızdır!
Öğrenmeye devam etmenizi öneririm—işte deneyebileceğiniz bazı kaynaklar: