從具有不同條目長度的字典建立DataFrame
當使用條目保存不同長度數組的字典時,建立一個DataFrame,其中每一列對應一個唯一的條目。嘗試將此類字典直接轉換為DataFrame 會導致“ValueError:數組必須具有相同的長度。”
解決方案
要解決此問題,一個方法涉及將每個條目的陣列轉換為Series,然後從結果字典建構一個DataFrame。在Python 3.x 中,這可以使用列表理解來實現:
d = dict( A = np.array([1,2]), B = np.array([1,2,3,4]) ) pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in d.items() ])) # Output: A B 0 1 1 1 2 2 2 NaN 3 3 NaN 4
在Python 2.x 中,程式碼保持類似,但d.items() 呼叫替換為d.iteritems( ):
pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in d.iteritems() ]))
此技術有效地將每個字典條目轉換為一個Series,然後可以將其附加到DataFrame 中,並以其對應的鍵作為列名。產生的 DataFrame 的列的長度與原始陣列的長度相符。缺失值表示為 NaN,以確保一致的列結構。
透過利用此方法,可以從包含不同陣列長度的條目的字典中建立 DataFrame,從而實現進一步的資料分析和操作。
以上是如何從具有不同條目長度的字典建立資料幀?的詳細內容。更多資訊請關注PHP中文網其他相關文章!