在 Pandas 中處理具有不等長度數組的字典需要量身定制的方法。當嘗試建立一個DataFrame,其中每一列代表字典中的一個陣列時,可能會遇到ValueError:「陣列必須具有相同的長度。」
來規避此問題問題,我們利用Pandas 的Series 物件來保存不同長度的陣列。透過將每個字典值轉換為 Series,我們可以有效地儲存數組,而不管它們的長度如何。以下程式碼片段示範了這種方法:
import pandas as pd import numpy as np # Sample data generated via a reproducible seed np.random.seed(2023) data = {k: np.random.randn(v) for k, v in zip("ABCDEF", [10, 12, 15, 17, 20, 23])} # Convert dictionary values to Series objects series_dict = {k: pd.Series(v) for k, v in data.items()} # Create DataFrame using these Series objects df = pd.DataFrame(series_dict)
處理不同長度的陣列時,通常會遇到缺失值,其中較短的陣列無法填入剩餘的儲存格。預設情況下,Pandas 使用 NaN(非數字)值填入這些空白。此行為保留原始數據,同時提供一致的分析結構。
如果需要,您可以使用 DataFrame 中的 Missing_values 參數自訂缺失值的處理( ) 建構子。例如,若要以零取代NaN 取代缺失值,您可以指定missing_values=0,如下所示:
df = pd.DataFrame(series_dict, missing_values=0)
以下輸出說明了使用上述方法創建的DataFrame:
print(df)
A B C D E F 0 0.711674 -1.076522 -1.502178 -1.519748 0.340619 0.051132 1 -0.324485 -0.325682 -1.379593 2.097329 -1.253501 -0.238061 2 -1.001871 -1.035498 -0.204455 0.892562 0.370788 -0.208009 3 0.236251 -0.426320 0.642125 1.596488 0.455254 0.401304 4 -0.102160 -1.029361 -0.181176 -0.638762 -2.283720 0.183169 ... ... ... ... ... ... ... 18 NaN NaN NaN NaN NaN NaN 19 NaN NaN NaN NaN NaN NaN 20 NaN NaN NaN NaN NaN NaN 21 NaN NaN NaN NaN NaN NaN 22 NaN NaN NaN NaN NaN NaN 23 rows × 6 columns
如您所觀察到的,較短的陣列會在對應的儲存格中產生 NaN 值,從而提供資料的全面表示,同時保持所需的表格格式。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3