簡體   English   中英

如何從字典列表中創建稀疏 DataFrame

[英]How to create a sparse DataFrame from a list of dicts

我從這樣的字典列表中創建DataFrame

pd.DataFrame([{"id":"a","v0":3,"v2":"foo"},
              {"id":"b","v1":1,"v4":"ouch"}]).set_index(
                 "id",verify_integrity=True)
     v0   v2   v1    v4
id                    
a   3.0  foo  NaN   NaN
b   NaN  NaN  1.0  ouch

唉,對於某些輸入,我在DataFrame構造函數中用完了 RAM,我想知道是否有辦法讓DataFrame從列表中生成稀疏的 DataFrame。

我建議為此使用dytpe='Sparse'

如果所有元素都是數字,您可以使用dytpe='Sparse'dytpe='Sparse[int]'dytpe='Sparse[float]'

data = [{"id":'a',"v0":3,"v2":6},
        {"id":'b',"v1":1,"v4":7}]
index = [item.pop('id') for item in data]
pd.DataFrame(data, index=index, dtype="Sparse")

如果任何值是字符串,則必須使用dytpe='Sparse[str]'

data = [{"id":'a',"v0":3,"v2":'foo'},
        {"id":'b',"v1":1,"v4":'ouch'}]
df = pd.DataFrame(data, dtype="Sparse[str]").set_index("id",verify_integrity=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM