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
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
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
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!