Python 熊猫:如何减去稀疏数据帧的平均列?

Python 熊猫:如何减去稀疏数据帧的平均列?,python,pandas,dataframe,sparse-matrix,Python,Pandas,Dataframe,Sparse Matrix,在0.25.3中,我不能减去稀疏数据帧的平均列。我试过: df_norm=df.subdf.meanaxis=1,axis=0 但我得到: AttributeError:模块“pandas.\u libs.sparse”没有属性“sparse\u sub\u float32”如果使用较旧的pandas SparFrame结构,则可能会出现此错误。然而,在最新版本中,我使用了0.25.3,有一种不同的方法来处理稀疏,您的代码运行良好。考虑将数据文件转换为现代稀疏类型。看见 下面是一个工作示例 df

在0.25.3中,我不能减去稀疏数据帧的平均列。我试过:

df_norm=df.subdf.meanaxis=1,axis=0

但我得到:


AttributeError:模块“pandas.\u libs.sparse”没有属性“sparse\u sub\u float32”

如果使用较旧的pandas SparFrame结构,则可能会出现此错误。然而,在最新版本中,我使用了0.25.3,有一种不同的方法来处理稀疏,您的代码运行良好。考虑将数据文件转换为现代稀疏类型。看见 下面是一个工作示例

df = pd.DataFrame (np.random.randint(0,100,(5,5)))
dtype = pd.SparseDtype(int, fill_value=0)   # define sparse type
df = df.astype(dtype)  # to new sparse type
print(df.sub(df.mean(axis=1), axis=0))

      0     1     2     3     4
0 -28.6  43.4 -42.6 -14.6  42.4
1  29.4  25.4 -48.6  -4.6  -1.6
2 -12.4  52.6 -15.4 -17.4  -7.4
3 -20.8  -2.8  10.2  -6.8  20.2
4  35.8  -4.2  19.8 -16.2 -35.2

不,因为你减去平均行,我想要平均列mm,你的代码对我有效,试着重新启动内核。我已经多次重新启动内核,它是一个大型稀疏数据框架。我有版本0.25.3,然后试着将数据转换成这个新的稀疏结构,看看是否有效。我的意思是,如果sparsedaframe被弃用,而现代SparseDtype解决了您的问题,为什么不升级数据呢?我假设我提供的熊猫文档链接显示了转换数据的清晰方式。