DataFrames’i Dosyalara Yazma
Temizlenmiş bir DataFrame’i to_csv ve to_excel ile CSV ve Excel’e aktarın; dizini ve kayan nokta biçimini yönetin.
DataFrames’i Dosyalara Yazma, CoddyKit'te ücretsiz bir Pandas & NumPy Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Pandas & NumPy Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Pandas & NumPy Academy kursu toplamda 4 dersten oluşur.
Dışa Aktarma Neden Önemlidir
Veri analizi nadiren Python içinde sona erer. Temizlenmiş veri kümelerini paydaşlarla paylaşmanız, sonuçları başka araçlara aktarmanız veya işlenmiş verileri yeniden üretilebilirlik amacıyla arşivlemeniz gerekir. Pandas, okuma işlevlerini yansıtan ve aynı yapılandırma parametrelerinin çoğunu kabul eden to_csv(), to_excel(), to_json() ve to_parquet() işlevlerini sağlar.
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(): Dizin Tuzağı
Varsayılan olarak to_csv(), satır dizinini ilk sütun olarak yazar ve dosyayı yeniden okuduğunuzda unnamed: 0 adlı bir sütun oluşturur. Dizini dışarıda bırakmak için index=False geçirin; dizinin kendisi anlamlı veriler (örneğin tarihler) içermediği sürece bu neredeyse her zaman doğru seçimdir. Dizini dahil etmek için kasıtlı bir nedeniniz yoksa her zaman index=False belirtin.
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)Ayraç ve Kodlamayı Denetleme
Sekmeyle veya noktalı virgülle ayrılmış bir dosya yazmak için sep= geçirin. UTF-8 veya başka bir karakter kümesi belirtmek için encoding= kullanın; bu, sütun değerleri aksanlı harfler veya Çince karakterler gibi ASCII dışı karakterler içerdiğinde gereklidir. encoding='utf-8-sig', Windows'ta Excel uyumluluğu için bir BOM (bayt sırası işareti) ekler.
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)Kayan Noktalı Sayı Biçimlendirmesini Denetleme
Varsayılan olarak Pandas, kayan noktalı sayıları tam duyarlılıkla yazar. 2 ondalık basamakla sınırlamak için float_format='%.2f' kullanın; bu, fazla ondalık basamakların insan okuyuculara yanlış görünebildiği finansal veriler için önemlidir. NaN değerlerinin çıktı dosyasına nasıl yazılacağını denetlemek için na_rep='NULL' veya na_rep='' geçirin.
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(): Sayfa Yazma
df.to_excel('file.xlsx', sheet_name='Data', index=False), DataFrame'i bir Excel çalışma kitabına yazar. to_csv() gibi, dizin anlamlı olmadıkça index=False ayarlayın. startrow= ve startcol= parametreleri tabloyu sayfa içinde konumlandırmanızı sağlar; bu, verilerin üzerine bir başlık satırı eklemek için kullanışlıdır.
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 titleExcelWriter ile Birden Çok Sayfa Yazma
Aynı çalışma kitabındaki farklı sayfalara birden çok DataFrame yazmak için bağlam yöneticisi olarak pd.ExcelWriter kullanın. with bloğunun içinde her DataFrame için df.to_excel(writer, sheet_name='Name') çağrısı yapın. Bağlamdan çıkıldığında çalışma kitabı sonlandırılır ve kaydedilir. Bu, ilişkili tablolar için birden çok ayrı dosya oluşturmanızı önler.
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(): JSON Dışa Aktarma
df.to_json(), bir DataFrame'i JSON'a serileştirir. orient= parametresi read_json'u yansıtır: satır sözlüklerinden oluşan bir liste (en fazla birlikte çalışabilirlik) için 'records', sütun dizilerinden oluşan bir sözlük için 'columns' veya satır etiketleriyle anahtarlanan bir sözlük için 'index' kullanın. İnsanların kolayca okuyabileceği biçimlendirme için indent=2 geçirin.
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}
# ]Mevcut Bir Dosyaya Ekleme
Mevcut bir CSV dosyasının üzerine yazmadan satır eklemek için dosyayı mode='a' ile ekleme modunda açın ve başlık satırının yinelenmesini önlemek için header=False ayarlayın. Excel için mode='a' ile ExcelWriter kullanın. Büyük akış işleme hatları için parçaları ekleyerek yazın ve başlığı yalnızca ilk parçada yazın.
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)Dışa Aktarmadan Önce Sütunları Seçme
Dışa aktarmadan önce iyi bir uygulama, yalnızca alıcının ihtiyaç duyduğu sütunları seçmek ve satırları mantıksal bir sıraya göre sıralamaktır. Bu, çıktı dosyasını daha temiz hâle getirir ve dahili kimlikler, kodlanmış özellikler veya hata ayıklama işaretleri gibi dahili sütunların yanlışlıkla sızmasını önler. Yazma işleminden önce aynı işlem hattı ifadesinde köşeli parantez seçimini ve sort_values() işlevini kullanın.
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))Yazılan Dosyayı Doğrulama
Yazma işleminden sonra dosyayı her zaman yeniden okuyup doğrulayın: shape'i, sütun adlarını ve birkaç örnek değeri kontrol edin. Sürekli tümleştirme işlem hatları için sağlama toplamlarını karşılaştırın. Kritik finansal dışa aktarımlarda, toplulaştırılmış toplamların eşleştiğini doğrulayın. Bu kontroller, dosya sonraki işlemi gerçekleştirecek tüketiciye ulaşmadan önce kodlama sorunlarını, kayan nokta duyarlılığı kaybını ve dizin sorunlarını yakalar.
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: Veriler için Daha İyi Bir Alternatif
Büyük analitik veri kümeleri için CSV yerine Parquet biçimini değerlendirin. Parquet, verileri sütunlu biçimde depolar, sıkıştırmayı destekler, veri türlerini tam olarak korur ve analitik sorgularda 10-100 kat daha hızlı okunur. df.to_parquet('data.parquet') ile yazın ve pd.read_parquet('data.parquet') ile okuyun. pyarrow veya fastparquet yüklenmiş olmalıdır.
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 exactlyKısa Kontrol
Bu derste DataFrames verilerini dosyalara yazma konusundaki anlayışınızı sınayın.
Ders Özeti
Bu derste şunları öğrendiniz: to_csv() ve to_excel(), DataFrames verilerini dışa aktarır ve varsayılan olarak dizini dahil eder; temiz bir çıktı için her zaman index=False ayarlayın, ExcelWriter, tek bir çalışma kitabında birden çok DataFrame'i ayrı sayfalara yazmayı sağlar ve Parquet, büyük analitik veri kümeleri için CSV'ye göre daha hızlı ve daha az alan kullanan bir alternatiftir. Sırada, uzak CSV dosyalarını URL'lerden yükleyecek ve io.StringIO ile bellekteki CSV dizelerini ayrıştıracağız.
Yapay zeka eğitmeniyle Python öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 30
- Dersler
- 120
Sıkça Sorulan Sorular
“DataFrames’i Dosyalara Yazma” dersi ücretsiz mi?
Evet — “DataFrames’i Dosyalara Yazma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Pandas & NumPy Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Pandas & NumPy Academy kursu toplamda 4 dersten oluşur.
“DataFrames’i Dosyalara Yazma” dersinde ne öğreneceğim?
Temizlenmiş bir DataFrame’i to_csv ve to_excel ile CSV ve Excel’e aktarın; dizini ve kayan nokta biçimini yönetin. Pandas & NumPy Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Pandas & NumPy Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Pandas & NumPy Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“DataFrames’i Dosyalara Yazma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Pandas & NumPy Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Pandas & NumPy Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- CSV Dosyalarını Okuma
- Excel ve JSON Dosyalarını Okuma
- DataFrames’i Dosyalara Yazma
- URL’lerden ve StringIO’dan Okuma