Untuk menggabungkan berbilang fail CSV dengan cekap menjadi DataFrame bersatu, penyelesaian yang ringkas dan boleh dipercayai dicari. Walau bagaimanapun, halangan telah ditemui dalam gelung penggabungan.
Untuk menyelesaikan isu dan berjaya menggabungkan fail CSV, coretan kod komprehensif berikut boleh digunakan:
import os import pandas as pd from pathlib import Path path = r'C:\DRO\DCL_rawdata_files' all_files = Path(path).glob('*.csv') df = pd.concat((pd.read_csv(f) for f in all_files), ignore_index=True)
Kod ini menggunakan ungkapan penjana untuk membaca setiap fail CSV secara individu, dan kemudian menggabungkannya menjadi satu DataFrame. Parameter ignore_index memastikan bahawa DataFrame bercantum mempunyai indeks baris berterusan.
Dalam senario tertentu, ia mungkin berfaedah untuk menambah lajur pada DataFrame bercantum yang menunjukkan sumber fail setiap baris. Ini boleh dicapai menggunakan salah satu pendekatan berikut:
Pilihan 1: Tambah Nama Fail sebagai Lajur Baharu
dfs = [] for f in all_files: data = pd.read_csv(f) data['file'] = f.stem dfs.append(data) df = pd.concat(dfs, ignore_index=True)
Pilihan 2: Tambah Fail Generik Sumber sebagai Lajur Baharu
dfs = [] for i, f in enumerate(all_files): data = pd.read_csv(f) data['file'] = f'File {i}' dfs.append(data) df = pd.concat(dfs, ignore_index=True)
Pilihan 3: Tambah Sumber Fail Menggunakan Pemahaman Senarai
dfs = [pd.read_csv(f) for f in all_files] df = pd.concat(dfs, ignore_index=True) df['Source'] = np.repeat([f'S{i}' for i in range(len(dfs))], [len(df) for df in dfs])
Pilihan 4: Penyelesaian Baris Tunggal dengan .assign()
df = pd.concat((pd.read_csv(f).assign(filename=f.stem) for f in all_files), ignore_index=True)
Dengan melaksanakan salah satu daripada pilihan ini, yang digabungkan DataFrame akan diberi anotasi dengan maklumat untuk mengesan asal usul setiap baris.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Berbilang Fail CSV dengan Cekap ke dalam Bingkai Data Panda Tunggal dan Menjejaki Asal Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!