gpt4 book ai didi

python - 如何检查 Pandas DataFrame 的稀疏性?

转载 作者:行者123 更新时间:2023-12-05 01:34:11 25 4
gpt4 key购买 nike

在 Pandas 中,如何检查 DataFrame 的稀疏程度?有没有可用的功能,或者我需要自己编写?
现在,我有这个:

df = pd.DataFrame({'a':[1,0,1,1,3], 'b':[0,0,0,0,1], 'c':[4,0,0,0,0], 'd':[0,0,3,0,0]})
    a   b   c   d
0 1 0 4 0
1 0 0 0 0
2 1 0 0 3
3 1 0 0 0
4 3 1 0 0
sparsity = sum((df == 0).astype(int).sum())/df.size

将零的数量除以元素总数,在本例中为 0.65。
想知道是否有更好的方法来做到这一点。并且如果有任何函数可以提供有关稀疏性的更多信息(例如 NaN,任何其他显着数字,例如 -1)。

最佳答案

您的解决方案的一个想法是转换为 numpy 数组,比较并使用 mean:

a = (df.to_numpy() == 0).mean()
print (a)
0.65

如果要使用Sparse dtypes 是可能的用途:

#convert each column to SparseArray
sparr = df.apply(pd.arrays.SparseArray)
print (sparr)
a b c d
0 1 0 4 0
1 0 0 0 0
2 1 0 0 3
3 1 0 0 0
4 3 1 0 0

print (sparr.dtypes)
a Sparse[int64, 0]
b Sparse[int64, 0]
c Sparse[int64, 0]
d Sparse[int64, 0]
dtype: object

print (sparr.sparse.density)
0.35

关于python - 如何检查 Pandas DataFrame 的稀疏性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63986466/

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