我有以下数据帧:
df
A B
0 2.5 0.1
1 NaN 0.5
2 NaN 0.3
3 2.0 0.1
我想把A中的每个非值乘以B列。 这可以通过使用
^{pr2}$并返回向量的并矢积
array([[ 0.25, 1.25, 0.75, 0.25],
[ nan, nan, nan, nan],
[ nan, nan, nan, nan],
[ 0.2 , 1. , 0.6 , 0.2 ]])
有没有可能直接从pandas构建这样的数据帧?在
这个问题的背景:在groupby之后,每个组都由一个具有上述结构的DataFrame组成。中始终至少有一个非nan项,但可能有多个。我想建立一个新的列作为(non nan(a)*(B))向量的平均值(如果你愿意,这是某种插补,考虑到a值的不安全性) 只需
np.nanmean(dyadic, axis=0)
array([ 0.225, 1.125, 0.675, 0.225])
或者说,numpy是这里最优雅的解决方案吗?在
单程
另一种方法(应该比
^{pr2}$apply
快)也就是
^{pr2}$dot
产品。在如果希望结果为数据帧,请执行以下操作-
^{3}$或者
然后您可以对结果调用
mean
或nanmean
—相关问题 更多 >
编程相关推荐