gpt4 book ai didi

python - pandas SparseDataFrame 插入

转载 作者:太空宇宙 更新时间:2023-11-04 01:27:47 24 4
gpt4 key购买 nike

我想用 Dimonson 250.000 x 250.000 创建一个 pandas SparseDataFrame。最后我的目标是想出一个大的邻接矩阵。

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

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

但是当我尝试更新 DataFrame 时,我会遇到大量内存/运行时问题:

index = 1000
col = 2000
value = 1
df.set_value(index, col, value)

我检查了来源:

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
...

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

有人知道如何更有效地解决这个问题吗?我的下一个想法是使用诸如嵌套列表/字典之类的东西......

感谢您的帮助!

最佳答案

这样做

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 会将传入的系列转换为 SparseSeries。 (你可以自己用s.to_sparse()看看它们是什么样子的。SparseDataFrame基本上是这些SparseSeries的dict,它们本身是不可变的。稀疏性在0.12中会有一些变化以更好支持这些类型的操作(例如设置将有效地工作)。

关于python - pandas SparseDataFrame 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16584156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com