我试图将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
?
答案 0 :(得分:1)
从熊猫v1.0.0开始,SparseDataFrame
和SparseSeries
were removed。
不再需要它们。引用the documentation:
使用具有稀疏值的Series或DataFrame而不是SparseSeries或SparseDataFrame不会降低性能或内存。