在 Python 中,可以從每個條目保存一個 Numpy 陣列的字典建立 DataFrame。然而,當條目之間的數組長度不同時,就會出現挑戰。預設情況下,Pandas 需要統一長度的數組,從而導致類似「ValueError:數組必須具有相同長度」的錯誤。
克服長度差異
解決對於這個問題,我們可以利用 Pandas 的功能,使用 NaN(非數字)值作為缺失資料的佔位符。透過利用這一點,我們可以有效地建立一個包含不同長度列的 DataFrame。
為了實現這一點,我們可以將每個字典條目轉換為 Pandas Series,這是一個可以無縫處理缺失值的一維數組。透過將字典項包裝在生成器表達式中並使用 Series 建構函數,我們可以建立 Series 物件的字典。
import pandas as pd import numpy as np # Sample data with uneven array lengths data = { 'A': np.random.randn(5), 'B': np.random.randn(8), 'C': np.random.randn(4) } # Convert dictionary items to Series series_dict = dict((k, pd.Series(v)) for k, v in data.items()) # Create DataFrame from the dictionary of Series df = pd.DataFrame(series_dict)
結果:
In [1]: df Out[1]: A B C 0 1.162543 1.681243 0.191287 1 0.459621 -0.141198 -0.109864 2 -0.866704 -0.128677 -0.511496 3 1.222436 -0.371449 -0.705894 4 -0.980584 1.255133 NaN 5 NaN -0.351051 NaN 6 NaN 0.443017 NaN 7 NaN -1.053693 NaN
顯然,DataFrame 包含數組長度不同的缺失值(NaN),這使我們能夠從具有不同數組長度的字典建立具有不同列長度的DataFrame。
以上是如何從具有不同數組長度的字典創建 Pandas DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!