首頁 >後端開發 >Python教學 >如何從具有不同條目長度的字典建立資料幀?

如何從具有不同條目長度的字典建立資料幀?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-09 03:35:021032瀏覽

How to Create DataFrames from Dictionaries with Varying Entry Lengths?

從具有不同條目長度的字典建立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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn