Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengoptimumkan Gelung DataFrame untuk Analisis Berjujukan dalam Panda?

Bagaimanakah Saya Boleh Mengoptimumkan Gelung DataFrame untuk Analisis Berjujukan dalam Panda?

Patricia Arquette
Lepaskan: 2024-11-14 18:41:02
asal
679 orang telah melayarinya

How Can I Optimize DataFrame Looping for Sequential Analysis in Pandas?

Mengoptimumkan Gelung Bingkai Data untuk Analisis Berjujukan

Apabila bekerja dengan bingkai data dalam panda, gelung yang cekap adalah penting untuk melaksanakan operasi yang kompleks pada set data yang besar. Mengulang setiap baris secara manual, seperti yang ditunjukkan dalam contoh yang disediakan, boleh memakan masa dan intensif memori.

Fungsi Iterrows()

Nasib baik, versi yang lebih baharu panda menawarkan fungsi terbina dalam yang direka khusus untuk lelaran kerangka data yang cekap: iterrows(). Fungsi ini mengembalikan iterator yang menghasilkan tuple yang mengandungi indeks baris dan objek Siri panda yang mewakili nilai baris:

for index, row in df.iterrows():
    date = row['Date']
    open, high, low, close, adjclose = row[['Open', 'High', 'Low', 'Close', 'Adj Close']]
    # Perform analysis on open/close based on date
Salin selepas log masuk

Menggunakan Fungsi Numpy

Walau bagaimanapun, jika kelajuan adalah yang terpenting, menggunakan fungsi numpy boleh menjadi lebih pantas daripada menggelung ke atas baris. Numpy menyediakan operasi bervektor yang boleh melakukan pengiraan pada keseluruhan lajur sekali gus, dengan ketara mengurangkan overhed yang dikaitkan dengan lelaran ke atas baris individu.

Sebagai contoh, untuk mengira peratusan perubahan dalam harga tutup:

import numpy as np
close_change = np.diff(df['Close']) / df['Close'][1:] * 100
Salin selepas log masuk

Pengoptimuman Memori

Untuk mengoptimumkan penggunaan memori apabila melelaran pada bingkai data yang besar, pertimbangkan untuk menggunakan kaedah itertuples() dan bukannya iterrows(). Kaedah ini mengembalikan iterator yang menghasilkan objek bernamatuple, mengurangkan penggunaan memori dengan mengelakkan penciptaan objek Siri panda:

for row in df.itertuples():
    date = row.Date
    open, high, low, close, adjclose = row.Open, row.High, row.Low, row.Close, row.Adj_Close
    # Perform analysis on open/close based on date
Salin selepas log masuk

Dengan memanfaatkan teknik gelung yang dioptimumkan ini, anda boleh meningkatkan prestasi dan kecekapan memori anda dengan ketara. analisis data kewangan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Gelung DataFrame untuk Analisis Berjujukan dalam Panda?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan