Python'da CSV Dosyaları Nasıl Birleştirilir?

Python Da Csv Dosyalari Nasil Birlestirilir



Bazen verilen veri kümesi tek bir CSV dosyasında olmayabilir. Hepsi farklı Excel sayfalarında. Tüm hesaplama veya ön işleme faaliyetlerini birkaç veri seti yerine tek bir veri seti üzerinde gerçekleştirmenin tercih edildiğini zaten biliyorsunuz. Ön işleme görevlerine harcamamız gereken zamanı azaltır veya kazandırır. Ayrıca, bir veri analisti veya veri bilimcisi olarak, mevcut verileri analiz etmeye veya incelemeye başlamadan önce birleştirilmesi gereken çok sayıda CSV dosyasıyla sık sık kendinizi aşırı yüklenmiş bulabilirsiniz. Öte yandan, tüm dosyaların tek veya aynı veri kaynağından elde edilmesi ve aynı sütun/değişken adlarına ve veri yapısına sahip olması her zaman mümkün değildir. Bu gönderi size iki veya daha fazla CSV dosyasını benzer veya farklı bir sütun yapısıyla birleştirmeyi öğretecek.

Neden CSV Dosyalarını Birleştirin?

Bir veri kümesi, belirli bir konuyla ilgili değer veya sayılardan oluşan bir koleksiyon veya grup olabilir. Örneğin, her öğrencinin belirli bir sınıftaki test sonuçları bir veri kümesi örneğidir. Büyük veri kümelerinin boyutu nedeniyle, genellikle farklı kategoriler için ayrı CSV dosyalarında depolanırlar. Örneğin, bir hastayı belirli bir hastalık için incelememiz gerekiyorsa, cinsiyeti, tıbbi kayıtları, yaşı, hastalığın ciddiyeti vb. bakış açıları. Ayrıca, hesaplama veya ön işleme görevlerini yerine getirirken birkaç veri seti yerine tek bir veri seti üzerinde çalışmak ve bunları yönetmek daha iyidir. Bellekten ve diğer hesaplama kaynaklarından tasarruf sağlar







Python'da CSV Dosyaları Nasıl Birleştirilir?

Python'da iki veya daha fazla CSV dosyasını birleştirmenin birçok yolu ve yöntemi vardır. Aşağıdaki bölümde, CSV dosyalarını pandas veri çerçevesinde birleştirmek için append(), concat() ve birleştirme() işlevlerini kullanacağız, ardından veri çerçeveleri tek bir CSV dosyasına dönüştürülecektir. Birden çok CSV dosyasını benzer veya değişken bir sütun yapısıyla nasıl birleştireceğimizi öğreteceğiz.



Yöntem # 1: CSV'leri Benzer Yapılar veya Sütunlarla Birleştirme

Mevcut çalışma dizinimizde “test1” ve “test2” olmak üzere iki CSV dosyası vardır.



Örnek 1: append() İşlevini Kullanma

Her iki CSV dosyası da aynı yapıya sahiptir. Bu yöntemde glob() işlevi yalnızca çalışma dizinindeki CSV dosyalarını listelemek için kullanılacaktır. Ardından CSV dosyalarımızı (ortak bir tablo yapısıyla) okumak için “pandas.DataFrame.append()” kullanacağız.





Çıktı:



Append işlevini kullanarak, test2.csv'deki her veri satırını test1.csv'nin veri satırlarının altına ekledik veya ekledik, çünkü dosyanın tüm veri satırlarının birleştiği görülüyor. Bu veri çerçevesini CSV'ye dönüştürmek için to_csv() işlevini kullanabiliriz.

Bu, çalışma dizinimizde 'test1' ve 'test2' CSV dosyalarının, belirtilen ada, yani birleştirilmiş.csv'ye sahip birleştirilmiş bir CSV dosyasını oluşturacaktır.

Örnek 2: concat() İşlevini Kullanma

Önce pandalar modülünü içe aktaracağız. Harita yöntemi, geçirdiğimiz her CSV dosyasını pd.read_csv() kullanarak okuyacaktır. Bu eşlenmiş dosyalar (CSV dosyaları), daha sonra varsayılan olarak pd.concat() işlevi kullanılarak satır ekseni boyunca birleştirilir. CSV dosyalarını yatay olarak birleştirmek istiyorsak, eksen=1'i geçebiliriz. Yoksayma dizini = True'nun belirtilmesi, birleştirilmiş veri çerçevesi için sürekli dizin değerleri de oluşturur.

pd.read_csv(), birleştirmeden sonra CSV dosyalarını pandas veri çerçevesine okumak için concat() işlevinin içine geçirilir.

Çalışma dizinindeki tüm CSV dosyalarının birleşik verilerini içeren bir veri çerçevesi elde ettik. Şimdi onu bir CSV dosyasına dönüştürelim.

Birleştirilmiş CSV'miz geçerli dizinde oluşturulur.

Yöntem # 2: CSV'leri Farklı Yapılar veya Sütunlarla Birleştirme

İlk yöntemde CSV dosyalarını aynı sütunlar ve yapıyla birleştirmeyi ele aldık. Bu yöntemde CSV dosyalarını farklı kolon ve yapılarla birleştireceğiz.

Örnek 1: birleştirme() İşlevini Kullanma

Pandalar modülündeki 'pandas.merge()' işlevi iki CSV dosyasını birleştirebilir. Birleştirme, basitçe, paylaşılan sütunlara veya özelliklere dayalı olarak iki veri kümesini tek bir veri kümesinde birleştirme anlamına gelir.

Veri çerçevelerini dört farklı birleştirme yöntemiyle birleştirebiliriz:

  • İç
  • Doğru
  • Ayrıldı
  • Dış

Bu tür birleştirmeleri gerçekleştirmek için iki CSV dosyası kullanacağız.

En az bir özelliğin veya sütunun her iki CSV dosyası tarafından paylaşılması gerektiğini unutmayın. Görüldüğü gibi, 'Ad' sütunu ve bazı nitelikleri her iki CSV dosyası tarafından paylaşılmaktadır.

İç Birleştirmeyi Kullanarak Birleştirme

merge() işlevinde how='inner' parametresinin belirtilmesi, iki veri çerçevesini belirtilen sütuna göre birleştirir ve ardından her iki orijinal veri çerçevesinde yalnızca aynı/aynı değerlere sahip satırları içeren yeni bir veri çerçevesi sağlar.

Görüldüğü gibi, işlev her iki CSV dosyasını birleştirdi ve satırları 'Ad' sütununun ortak özelliklerine göre döndürdü.

Sağ Dış Birleştirmeyi Kullanarak Birleştirme

how='right' parametresi belirtildiğinde, her iki veri çerçevesi de 'on' parametresi için belirttiğimiz sütuna göre birleştirilecektir. Sol veri çerçevesinin değer içermediği satırlar da dahil olmak üzere sağ veri çerçevesindeki tüm satırları içeren yeni bir veri çerçevesi, sol veri çerçevesinin sütun değeri NAN olarak ayarlanarak döndürülür.

Sol Dış Birleştirmeyi Kullanarak Birleştirme

Parametre 'left' olarak belirtildiğinde, iki veri çerçevesi, 'on' parametresi kullanılarak belirtilen sütuna göre birleştirilerek sol veri çerçevesindeki tüm satırların yanı sıra NAN'a sahip tüm satırları içeren yeni bir veri çerçevesi döndürülür. veya doğru veri çerçevesindeki boş değerler ve doğru veri çerçevesi sütun değerini NAN olarak ayarlar.

Tam Dış Birleştirmeyi Kullanarak Birleştirme

how='outer' belirtildiğinde, 'on' parametresi için belirtilen sütuna bağlı olarak iki veri çerçevesi birleştirilerek hem df1 hem de df2 veri çerçevelerinden satırları içeren yeni bir veri çerçevesi döndürülür ve NAN herhangi bir satır için değer olarak ayarlanır veri çerçevelerinden birinde hangi verilerin bulunmadığı.

Örnek 2: Çalışma Dizinindeki Tüm CSV Dosyalarını Birleştirme

Bu yöntemde, tüm .csv dosyalarını bir pandas DataFrame'de birleştirmek için glob modülünü kullanacağız. Önce tüm kitaplıkların içe aktarılması gerekiyordu. Ardından, birleştirmek istediğimiz her CSV dosyası için bir yol belirleyeceğiz. Dosya yolu, aşağıdaki örnekte os.path.join() işlevi için ilk bağımsız değişkendir ve ikinci bağımsız değişken, yol bileşenleri veya birleştirilecek .csv dosyalarıdır. Burada '*.csv' ifadesi, çalışma dizinindeki .csv dosya uzantısıyla biten her dosyayı bulup döndürür. glob.glob(birleştirilmiş dosyalar) işlevi, birleştirilmiş dosyaların adlarının bir listesini girdi olarak kabul eder ve tüm birleştirilmiş/birleştirilmiş dosyaların bir listesini çıkarır.

Bu komut dosyası, çalışma dizinimizdeki tüm CSV dosyalarının birleşik verilerini içeren bir veri çerçevesi döndürür.

Bu veri çerçevesi bir CSV dosyasına dönüştürülecek ve bu dönüştürme için to_csv() işlevi kullanılacaktır. Bu yeni CSV dosyası, geçerli çalışma dizininde saklanan tüm CSV dosyalarından oluşturulan birleştirilmiş CSV dosyaları olacaktır.

Çözüm

Bu gönderide, neden CSV dosyalarını birleştirmemiz gerektiğini tartıştık. Python'da iki veya daha fazla CSV dosyasının nasıl birleştirilebileceğini tartıştık. Bu öğreticiyi iki bölüme ayırdık. İlk bölümde, aynı yapıya veya sütun adlarına sahip CSV dosyalarını birleştirmek için append() ve concat() işlevlerinin nasıl kullanılacağını açıkladık. İkinci bölümde, farklı sütun ve yapıdaki CSV dosyalarını birleştirmek için birleştirme() yöntemi, os.path.join() ve glob yöntemini kullandık.