来自dicts列表的Pandas SparseDataFrame

时间:2014-10-29 09:41:16

标签: python numpy pandas

我试图将Python dicts列表转换为Pandas DataFrame。 由于每个dict都有不同的键,因此占用的内存太多。由于大多数值都是NaN,因此在这种情况下SparseDataFrame应该会有所帮助。

import pandas

df = pandas.DataFrame(keyword_data).to_sparse(fill_value=.0)

这很有用,但是占用大量内存,因为同时创建了一个DataFrame,有时会引发MemoryError

是否可以在没有该步骤的情况下使用此数据创建SparseDataFrame?在这种情况下,Pandas文档并没有多大帮助...... 这样做:

pandas.SparseDataFrame(keyword_data, default_fill_value=.0)

引发:

  

TypeError:ufunc' isnan'不支持输入类型,并且根据投射规则无法安全地将输入强制转换为任何支持的类型'''


数据类似于:

[{'a': 0.672366,
  'b': 0.667276,
  # ...
 },
 {'c': 0.507752,
  'd': 0.532593,
  'e': 0.507793
  # ...
 },
 # ...
]

键总是字符串,每个字典有不同的键,值是浮点数。

有没有办法直接从这些数据创建SparseDataFrame,而无需通过常规DataFrame

1 个答案:

答案 0 :(得分:1)

从熊猫v1.0.0开始,SparseDataFrameSparseSeries were removed

不再需要它们。引用the documentation

使用具有稀疏值的Series或DataFrame而不是SparseSeries或SparseDataFrame不会降低性能或内存。