Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Menggabungkan Banyak Bingkai Data Panda Secara Eksponen Lambat, dan Bagaimana Saya Boleh Mengelakkannya?

Mengapa Menggabungkan Banyak Bingkai Data Panda Secara Eksponen Lambat, dan Bagaimana Saya Boleh Mengelakkannya?

DDD
Lepaskan: 2024-12-20 03:38:13
asal
825 orang telah melayarinya

Why is Concatenating Many Pandas DataFrames Exponentially Slow, and How Can I Avoid It?

Penggabungan DataFrames Secara Eksponen Lambat

Apabila bekerja dengan set data yang besar, adalah perkara biasa untuk membahagikan data kepada bahagian yang lebih kecil untuk pemprosesan yang cekap. Walau bagaimanapun, penyatuan kembali ketulan ini boleh menjadi lebih perlahan apabila bilangan ketulan bertambah.

Punca Kelembapan

Kelembaban itu dikaitkan dengan cara pd.concat() dilaksanakan. Apabila dipanggil dalam gelung, ia mencipta DataFrame baharu untuk setiap gabungan, menghasilkan penyalinan data yang banyak. Kos penyalinan ini meningkat secara kuadratik dengan bilangan lelaran, yang membawa kepada peningkatan eksponen yang diperhatikan dalam masa pemprosesan.

Mengelakkan Kelembapan

Untuk mengelakkan kesesakan prestasi ini, adalah penting untuk mengelak daripada memanggil pd.concat() di dalam gelung untuk. Sebaliknya, simpan ketulan dalam senarai dan gabungkan kesemuanya sekali gus selepas diproses:

super_x = []
for i, df_chunk in enumerate(df_list):
    [x, y] = preprocess_data(df_chunk)
    super_x.append(x)
super_x = pd.concat(super_x, axis=0)
Salin selepas log masuk

Menggunakan pendekatan ini, penyalinan hanya berlaku sekali, dengan ketara mengurangkan masa pemprosesan keseluruhan.

Atas ialah kandungan terperinci Mengapa Menggabungkan Banyak Bingkai Data Panda Secara Eksponen Lambat, dan Bagaimana Saya Boleh Mengelakkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan