Bagaimana untuk Menggabungkan Fail CSV dalam Python

Bagaimana Untuk Menggabungkan Fail Csv Dalam Python



Kadangkala set data yang diberikan tiada dalam satu fail CSV. Kesemuanya terdapat pada helaian Excel yang berbeza. Anda sudah tahu bahawa adalah lebih baik untuk melaksanakan semua aktiviti pengiraan atau prapemprosesan pada satu set data dan bukannya beberapa set data. Ia mengurangkan atau menjimatkan masa yang kita perlukan untuk tugasan prapemprosesan. Selain itu, sebagai penganalisis data atau saintis data, anda mungkin sering mendapati diri anda terlalu sarat dengan banyak fail CSV yang mesti digabungkan sebelum anda memulakan analisis atau pemeriksaan data yang tersedia. Sebaliknya, tidak semestinya semua fail diperoleh daripada sumber data tunggal atau sama dan mempunyai nama lajur/pembolehubah dan struktur data yang sama. Siaran ini akan mengajar anda untuk menggabungkan dua atau lebih fail CSV dengan struktur lajur yang serupa atau berbeza.

Mengapa Gabungkan Fail CSV?

Set data boleh menjadi kumpulan atau kumpulan nilai atau nombor yang berkaitan dengan subjek tertentu. Sebagai contoh, setiap keputusan ujian pelajar dalam kelas tertentu adalah contoh set data. Disebabkan saiz set data yang besar, ia sering disimpan dalam fail CSV berasingan untuk kategori yang berbeza. Sebagai contoh, jika kita dikehendaki memeriksa pesakit untuk penyakit tertentu, kita mesti mempertimbangkan setiap komponen, termasuk jantina, rekod perubatan, umur, keterukan penyakit, dsb. Akibatnya, menggabungkan data CSV diperlukan untuk memeriksa pelbagai peramal yang mempengaruhi aspek. Selain itu, adalah lebih baik untuk bekerja dan mengurus set data tunggal daripada beberapa set data semasa melaksanakan tugas pengiraan atau prapemprosesan. Ia menjimatkan memori dan sumber pengiraan lain







Bagaimana Untuk Menggabungkan Fail CSV dalam Python?

Terdapat pelbagai cara dan kaedah untuk menggabungkan dua atau lebih fail CSV dalam Python. Dalam bahagian di bawah, kami akan menggunakan fungsi append(), concat(), dan merge(), dsb., untuk menggabungkan fail CSV ke dalam bingkai data panda kemudian bingkai data akan ditukar menjadi satu fail CSV. Kami akan mengajar cara menggabungkan berbilang fail CSV dengan struktur lajur yang serupa atau berubah-ubah.



Kaedah # 1: Menggabungkan CSV Dengan Struktur atau Lajur Serupa

Direktori kerja semasa kami mempunyai dua fail CSV, 'test1' dan 'test2'.



Contoh # 1: Menggunakan Fungsi append().

Kedua-dua fail CSV adalah daripada struktur yang sama. Fungsi glob() akan digunakan dalam kaedah ini untuk hanya menyenaraikan fail CSV dalam direktori kerja. Kemudian kami akan menggunakan 'pandas.DataFrame.append()' untuk membaca fail CSV kami (dengan struktur jadual biasa).





Pengeluaran:



Menggunakan fungsi tambah, kami telah menambahkan atau menambah setiap baris data daripada test2.csv di bawah baris data test1.csv, kerana dapat dilihat bahawa semua baris data fail telah digabungkan. Untuk menukar bingkai data ini kepada CSV, kita boleh menggunakan fungsi to_csv().

Ini akan mencipta fail CSV gabungan fail CSV 'test1' dan 'test2' dalam direktori kerja kami dengan nama yang ditentukan, iaitu, merged.csv.

Contoh # 2: Menggunakan Fungsi concat().

Kami akan mengimport modul panda terlebih dahulu. Kaedah peta akan membaca setiap fail CSV yang telah kami lalukan menggunakan pd.read_csv(). Fail yang dipetakan (fail CSV) ini kemudiannya akan digabungkan di sepanjang paksi baris secara lalai menggunakan fungsi pd.concat(). Jika kami ingin menggabungkan fail CSV secara mendatar, kami boleh menghantar axis=1. Menentukan indeks abaikan = Benar juga mencipta nilai indeks berterusan untuk rangka data gabungan.

Pd.read_csv() dihantar dalam fungsi concat() untuk membaca fail CSV ke dalam bingkai data panda selepas penyatuan.

Kami telah memperoleh kerangka data dengan data gabungan semua fail CSV dalam direktori kerja. Sekarang, mari tukarkannya menjadi fail CSV.

CSV gabungan kami dicipta dalam direktori semasa.

Kaedah # 2: Menggabungkan CSV Dengan Struktur atau Lajur Berbeza

Kami membincangkan menggabungkan fail CSV dengan lajur dan struktur yang sama dalam kaedah pertama. Dalam kaedah ini, kami akan menggabungkan fail CSV dengan lajur dan struktur yang berbeza.

Contoh # 1: Menggunakan Fungsi merge().

Fungsi “pandas.merge()” dalam modul panda boleh menggabungkan dua fail CSV. Penggabungan hanya merujuk kepada menggabungkan dua set data menjadi satu set data berdasarkan lajur atau atribut yang dikongsi.

Kami boleh menggabungkan bingkai data dalam empat cara yang berbeza untuk menyertai:

  • dalaman
  • Betul
  • Ditinggalkan
  • Luar

Untuk melaksanakan jenis cantuman ini, kami akan menggunakan dua fail CSV.

Ambil perhatian bahawa sekurang-kurangnya satu atribut atau lajur mesti dikongsi oleh kedua-dua fail CSV. Seperti yang diperhatikan, lajur 'Nama' dan beberapa atributnya dikongsi oleh kedua-dua fail CSV.

Gabung Menggunakan Inner Join

Menentukan parameter how=’inner’ dalam fungsi merge() akan menggabungkan dua bingkai data mengikut lajur yang ditentukan dan kemudian menyediakan bingkai data baharu yang hanya mengandungi baris dengan nilai yang sama/sama dalam kedua-dua bingkai data asal.

Seperti yang dapat dilihat bahawa fungsi itu telah menggabungkan kedua-dua fail CSV dan mengembalikan baris berdasarkan atribut biasa lajur 'Nama'.

Gabung Menggunakan Cantuman Luar Kanan

Apabila parameter how=’right’ ditentukan, kedua-dua bingkai data akan digabungkan berdasarkan lajur yang kami tentukan untuk parameter ‘on’. Dan bingkai data baharu yang mengandungi semua baris daripada bingkai data kanan, termasuk mana-mana baris yang bingkai data kirinya tidak mengandungi nilai, akan dikembalikan, dengan nilai lajur bingkai data kiri ditetapkan kepada NAN.

Bercantum Menggunakan Gabungan Luar Kiri

Apabila cara parameter ditentukan sebagai 'kiri', kedua-dua bingkai data akan digabungkan berdasarkan lajur yang ditentukan menggunakan parameter 'hidup', mengembalikan bingkai data baharu yang mempunyai semua baris dari bingkai data kiri serta mana-mana baris yang mempunyai NAN atau nilai nol dalam bingkai data yang betul dan menetapkan nilai lajur bingkai data yang betul kepada NAN.

Gabung Menggunakan Gabungan Luar Penuh

Apabila how='outer' ditentukan, kedua-dua bingkai data akan digabungkan bergantung pada lajur yang ditentukan untuk parameter 'on', mengembalikan bingkai data baharu yang mengandungi baris daripada bingkai data df1 dan df2 dan menetapkan NAN sebagai nilai untuk mana-mana baris yang mana data tiada dalam salah satu bingkai data.

Contoh # 2: Menggabungkan Semua Fail CSV dalam Direktori Kerja

Dalam kaedah ini, kami akan menggunakan modul glob untuk menggabungkan semua fail .csv ke dalam DataFrame panda. Semua perpustakaan perlu diimport terlebih dahulu. Seterusnya, kami akan menetapkan laluan untuk setiap fail CSV yang ingin kami gabungkan. Laluan fail ialah hujah pertama untuk fungsi os.path.join() dalam contoh di bawah dan hujah kedua ialah sama ada komponen laluan atau fail .csv untuk dicantumkan. Di sini, ungkapan '*.csv' akan mencari dan mengembalikan setiap fail dalam direktori kerja yang berakhir dengan sambungan fail .csv. Fungsi glob.glob(fail bercantum) menerima senarai nama fail yang digabungkan sebagai input dan mengeluarkan senarai semua fail yang digabungkan/digabungkan.

Skrip ini akan mengembalikan kerangka data dengan data gabungan semua fail CSV dalam direktori kerja kami.

Bingkai data ini akan diubah menjadi fail CSV dan fungsi to_csv() akan digunakan untuk penukaran ini. Fail CSV baharu ini akan menjadi gabungan fail CSV yang dibuat daripada semua fail CSV yang disimpan dalam direktori kerja semasa.

Kesimpulan

Dalam siaran ini, kami membincangkan sebab kami perlu menggabungkan fail CSV. Kami membincangkan cara dua atau lebih fail CSV boleh digabungkan dalam Python. Kami membahagikan tutorial ini kepada dua bahagian. Dalam bahagian pertama, kami menerangkan cara menggunakan fungsi append() dan concat() untuk menggabungkan fail CSV daripada struktur atau nama lajur yang sama. Dalam bahagian kedua, kami menggunakan kaedah merge(), os.path.join(), dan kaedah glob untuk menggabungkan fail CSV daripada lajur dan struktur yang berbeza.