我正在尝试将一组Python字典转换为Pandas DataFrame
。由于每个字典具有不同的键,因此它占用了太多内存。由于大多数值都是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)
错误信息:
类型错误: 输入类型不支持ufunc 'isnan',并且根据强制转换规则“safe”,输入不能安全地强制转换为任何受支持的类型
数据看起来像:
[{'a': 0.672366,
'b': 0.667276,
# ...
},
{'c': 0.507752,
'd': 0.532593,
'e': 0.507793
# ...
},
# ...
]
字典中的键始终为字符串,每个字典具有不同的键,值为浮点数。
是否有一种方法可以直接从这些数据创建 SparseDataFrame
,而无需经过常规的 DataFrame
?
SparseDataFrame
构造函数不起作用,而df.to_sparse()
却可以... - yprez