Python 数据帧的元素乘法

Python 数据帧的元素乘法,python,pandas,Python,Pandas,我知道这个问题已经被问过好几次了,但是我尝试了所有的答案,仍然没有得到正确的结果。我只想对两个数据帧进行元素相乘,但它总是会弄乱矩阵的结构: x = pd.DataFrame([1,1,1],[2,2,2]) y= pd.DataFrame([0,0,0],[1,1,1]) z=x*y应导致z为 2 0 2 0 2 0 但结果是z为: 0 1 NaN 1 NaN 1 NaN 2 NaN 2 NaN 2 NaN 我做错了什么?我尝试了pandas.mul和pandas

我知道这个问题已经被问过好几次了,但是我尝试了所有的答案,仍然没有得到正确的结果。我只想对两个数据帧进行元素相乘,但它总是会弄乱矩阵的结构:

x = pd.DataFrame([1,1,1],[2,2,2])
y= pd.DataFrame([0,0,0],[1,1,1])
z=x*y应导致z为

2 0
2 0
2 0
但结果是z为:

0
1   NaN
1   NaN
1   NaN
2   NaN
2   NaN
2   NaN

我做错了什么?我尝试了pandas.mul和pandas.multiply,但没有成功。

你应该使用:
print(x*y.values)
而不是
print(x*y)
你应该使用:
print(x*y.values)
而不是
print(x*y)
你不能使用x*y来相乘两个数据帧,只能使用序列或np.array。x、 values*y.values给出正确的结果,但作为np.array。这个np.array你可以写在一个新的列(或一个新的数据框)中。这能回答你的问题吗?不能使用x*y,只能使用series或np.array来相乘两个数据帧。x、 values*y.values给出正确的结果,但作为np.array。这个np.array你可以写在一个新的列(或一个新的数据框)中。这能回答你的问题吗?