2016-06-08 39 views
2

成对点的产品有一个数据帧我我怎么总结列

df = pd.DataFrame(np.random.rand(10, 10)) 

我想借此奇数列的成对点产品与偶数行再总结起来。所以列0与列1,列2与列3,依此类推。

我做

df.mul(df.shift(axis=1)).sum().sum() 

但是,这让我列1和2,2和3,3和4,这是不是我想要的。

回答

1

尝试:

(df.iloc[:, ::2].values * df.iloc[:, 1::2].values).sum() 
2

,元素方式乘法与和减少可能被认为是积减少。在这种情况下,我们可以使用NumPy's tensordot,就像这样 -

# Extract the elements as a NumPy array 
arr = df.get_values() 

# Perform dot product between odd and even columns to get the desired output 
out = np.tensordot(arr[:,::2],arr[:,1::2])