来自字典列表的 Pandas SparseDataFrame

ypr*_*rez 7 python numpy pandas

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

import pandas

df = pandas.DataFrame(keyword_data).to_sparse(fill_value=.0)
Run Code Online (Sandbox Code Playgroud)

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

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

pandas.SparseDataFrame(keyword_data, default_fill_value=.0)
Run Code Online (Sandbox Code Playgroud)

提高:

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


数据看起来像:

[{'a': 0.672366,
  'b': 0.667276,
  # ...
 },
 {'c': 0.507752,
  'd': 0.532593,
  'e': 0.507793
  # ...
 },
 # ...
]
Run Code Online (Sandbox Code Playgroud)

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

有没有办法SparseDataFrame直接从这些数据创建一个,而不需要通过常规的DataFrame

Qus*_*man 1

从 pandas v1.0.0 开始,SparseDataFrameSparseSeries 被删除

\n

不再需要它们了。引用文档

\n
\n

使用具有稀疏值的 Series 或 DataFrame(而不是 SparseSeries 或 SparseDataFrame)不会造成性能或内存损失。

\n
\n