Memisahkan Bingkai Data Panda Besar kepada Bahagian Yang Sama
Apabila bekerja dengan set data besar dalam Panda, selalunya perlu membahagikannya kepada bahagian yang lebih kecil untuk pemprosesan atau analisis. Satu kaedah yang biasa digunakan untuk membelah bingkai data ialah np.split, yang mengagihkan data ke dalam bilangan tatasusunan yang sama sepanjang paksi yang ditentukan. Walau bagaimanapun, percubaan untuk membahagikan bilangan baris yang tidak sekata menggunakan kaedah ini boleh mengakibatkan ValueError.
Pendekatan Alternatif Menggunakan np.array_split
Untuk mengatasi isu ini, pertimbangkan untuk menggunakan np.array_split sebaliknya. Fungsi ini membenarkan pembahagian bingkai data yang tidak sama rata, seperti yang ditunjukkan dalam kod Python berikut:
<code class="python">import pandas as pd import numpy as np df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'], 'B' : ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'], 'C' : np.random.randn(8), 'D' : np.random.randn(8)}) print(df) split_data = np.array_split(df, 4) for part in split_data: print(part)</code>
Keluaran kod ini menunjukkan bingkai data berpecah kepada empat bahagian yang sama:
A B C D 0 foo one -0.174067 -0.608579 1 bar one -0.860386 -1.210518 2 foo two 0.614102 1.689837 3 bar three -0.284792 -1.071160 4 foo two 0.843610 0.803712 5 bar two -1.514722 0.870861 6 foo one 0.131529 -0.968151 7 foo three -1.002946 -0.257468 A B C D 0 foo one -0.174067 -0.608579 1 bar one -0.860386 -1.210518 2 foo two 0.614102 1.689837 3 bar three -0.284792 -1.071160 4 foo two 0.843610 0.803712 5 bar two -1.514722 0.870861 A B C D 0 foo one 0.131529 -0.968151 1 foo three -1.002946 -0.257468 A B C D 0 bar one -0.860386 -1.210518 1 foo two 0.614102 1.689837 2 bar three -0.284792 -1.071160 3 foo two 0.843610 0.803712 4 bar two -1.514722 0.870861
Menggunakan np.array_split memastikan pengedaran sekata baris bingkai data, tanpa mengira jumlah kiraannya. Ini menyediakan kaedah yang mudah untuk memisahkan set data yang besar kepada bahagian yang boleh diurus untuk pemprosesan selanjutnya.
Atas ialah kandungan terperinci Bagaimanakah saya boleh membahagikan Pandas DataFrame yang besar kepada bahagian yang sama apabila bilangan baris tidak boleh dibahagikan dengan bilangan bahagian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!