在 Python 中,可以從每個條目保存一個 Numpy 陣列的字典建立 DataFrame。然而,當條目之間的數組長度不同時,就會出現挑戰。預設情況下,Pandas 需要統一長度的數組,從而導致類似“ValueError: arrays must all be the same length.”的錯誤。
克服長度差異
要解決對於這個問題,我們可以利用 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。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3