PandasSparsetalaframe插入

2024-03-28 09:23:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Dimonson 250.000 x 250.000创建一个熊猫Sparsetalaframe。最后,我的目标是得到一个大的邻接矩阵。在

到目前为止,创建数据帧没有问题:

df = SparseDataFrame(columns=arange(250000), index=arange(250000))

但当我试图更新数据帧时,我就成了大量内存/运行时问题:

^{pr2}$

我查了资料来源:

def set_value(self, index, col, value):
    """
    Put single value at passed column and index

    Parameters
    ----------
    index : row label
    col : column label
    value : scalar value

    Notes
    -----
    This method *always* returns a new object. It is currently not
    particularly efficient (and potentially very expensive) but is provided
    for API compatibility with DataFrame
...

后一句话描述了这个案例中使用熊猫的问题?我真的很想继续使用熊猫在这种情况下,但这是完全不可能的!在

有没有人有办法,如何更有效地解决这个问题? 我的下一个想法是使用嵌套列表/dicts之类的东西。。。在

谢谢你的帮助!在


Tags: columnsand数据目标dfindexisvalue
1条回答
网友
1楼 · 发布于 2024-03-28 09:23:51

这样做

df = pd.SparseDataFrame(columns=np.arange(250000), index=np.arange(250000))

s = df[2000].to_dense()
s[1000] = 1
df[2000] = s

In [11]: df.ix[1000,2000]
Out[11]: 1.0

所以程序是一次换掉整个系列。SDF将把传入的串联转换成稀疏序列。(您可以自己动手,看看s.to_sparse()的样子。SparseStataframe基本上是这些稀疏序列的一个分支,它们本身是不可变的。稀疏性将在0.12中进行一些更改,以更好地支持这些类型的操作(例如,设置将有效地工作)。在

相关问题 更多 >