我创建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,我想知道是否有办法让 pandas 生成 sparse 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)
关于python - 如何从字典列表创建稀疏 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66336025/