python - 如何从字典列表创建稀疏 DataFrame

标签 python pandas dataframe sparse-matrix

我创建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/

相关文章:

python - map_async 与 apply_async :what should I use in this case

python - 带有动态前缀的 Django URL

python - 如何为 Matplotlib 图形添加剪贴板支持?

python - 添加由不同但重叠的间隔索引的两个系列

pandas - 根据多个条件更改列值

python - 按顺序计算重复条目

python - 删除 pandas 中的中文

python - CSV 阅读器在前几个字符中捡垃圾

python - 从多索引数据框中删除特定行

python - 查找系列中值的百分比变化