將大型Pandas 資料幀分割成相等的部分
在Pandas 中處理大型資料集時,通常需要將它們分成更小的區塊處理或分析。分割資料幀的常用方法是 np.split,它將資料沿著指定軸分佈到相等數量的數組中。但是,嘗試使用此方法拆分奇數行可能會導致 ValueError。
使用 np.array_split 的替代方法
要解決此問題,請考慮使用改為 np.array_split。此函數允許對資料幀進行不等劃分,如以下Python 程式碼所示:
<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>
此程式碼的輸出顯示資料幀被分成四個相等的部分:
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
使用np.array_split 可確保資料幀行的均勻分佈,無論其總計數為何。這提供了一種將大型資料集分割成可管理的區塊以進行進一步處理的便捷方法。
以上是當行數無法被部分數整除時,如何將大型 Pandas DataFrame 分成相等的部分?的詳細內容。更多資訊請關注PHP中文網其他相關文章!