Membuat Pandas DataFrame kosong, dan kemudian mengisinya
Mengisi DataFrame secara berulang dengan nilai
Menggunakan dokumentasi DataFrame yang diberikan, anda mahu berulang kali isikan DataFrame dengan nilai dalam jenis pengiraan siri masa. Matlamatnya adalah untuk memulakan DataFrame dengan lajur A, B dan baris cap waktu, semua 0 atau semua NaN. Kemudian, anda ingin menambah nilai awal dan pergi ke data ini mengira baris baharu daripada baris sebelumnya, sebut baris[A][t] = baris[A][t-1] 1 atau lebih.
Walaupun kod semasa menggunakan iterator, fungsi sifar scipy dan datetime mungkin berfungsi, ia boleh dipertingkatkan.
Mengapa tidak mengembangkan DataFrame row-wise?
Membangun DataFrame row-wise biasanya tidak disyorkan atas sebab berikut:
-
Kos pengiraan: Melampirkan pada senarai dan mencipta DataFrame sekali gus adalah kurang intensif pengiraan daripada mencipta DataFrame kosong dan menambahkannya berulang kali sekali lagi.
-
Penggunaan memori: Senarai menggunakan lebih sedikit memori dan merupakan struktur data yang lebih ringan untuk digunakan berbanding DataFrames, menjadikannya lebih cekap untuk menambah dan mengalih keluar.
-
Inferens jenis data: Jika anda menambah pada DataFrame, anda mungkin mempunyai lajur objek, yang boleh menghalang persembahan panda. Senarai, sebaliknya, membenarkan dtypes disimpulkan secara automatik.
-
Pengurusan indeks: RangeIndex dicipta secara automatik untuk data anda apabila anda mencipta DataFrame daripada senarai, yang menjimatkan anda kerumitan menguruskan indeks sendiri.
Pendekatan yang disyorkan: Kumpul data dalam list
Daripada mengembangkan DataFrame mengikut baris, adalah lebih baik untuk mengumpul data dalam senarai dan kemudian memulakan DataFrame menggunakan pd.DataFrame(data). Pendekatan ini menawarkan kelebihan berikut:
-
Kecekapan: Ia lebih cekap dari segi pengiraan dan memerlukan kurang memori.
-
Fleksibiliti: Senarai boleh ditukarkan kepada format senarai-senarai dan senarai-dikt, yang diterima oleh pd.DataFrame.
-
Kemudahan: Ia mengendalikan pengurusan indeks dan inferens jenis data secara automatik.
Alternatif untuk dipertimbangkan
Semasa mengumpul data dalam senarai adalah pendekatan pilihan, terdapat dua alternatif yang lebih buruk untuk dielakkan:
-
Tambahkan atau cantumkan di dalam gelung: Ini tidak cekap dan mudah ralat kerana ia berulang kali mengagihkan semula memori dan boleh membawa kepada lajur objek.
-
Mencipta kosong DataFrame of NaNs: Pendekatan ini juga mencipta lajur objek dan memerlukan indeks manual pengurusan.
Kesimpulan
Untuk mengisi DataFrame dengan nilai dengan berkesan, sebaiknya kumpulkan data dalam senarai dan kemudian mulakan DataFrame menggunakan pd.DataFrame(data). Kaedah ini cekap, fleksibel dan mudah, menjadikannya pendekatan pilihan untuk bekerja dengan panda DataFrames.
Atas ialah kandungan terperinci Bagaimana untuk Mengisi Pandas DataFrame dengan Cekap Secara Iteratif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!