3 回答
TA贡献1829条经验 获得超4个赞
中的值y是未索引的矩阵。这个案例x['A'] = y在这里工作,因为它从矩阵中取出第一项并将其分配给'A'.
相似地,
x = pd.DataFrame(np.zeros((4, 2)), columns=['A', 'B'])
y = np.random.randn(4, 2)
x[['A', 'B']] = y
也将起作用,因为熊猫会丢弃额外的数据。如果您尝试传递较少的列,请说:
x = pd.DataFrame(np.zeros((4, 2)), columns=['A', 'B'])
y = np.random.randn(4, 1)
x[['A', 'B']] = y
这也将起作用,因为它将为两列分配相同的值。这种情况类似于x['A'] = 0将列中的所有数据替换A为零。
TA贡献1799条经验 获得超8个赞
为了
x = pd.DataFrame(np.zeros((4, 1)), columns=['A'])
y = np.random.randn(4, 2)
如果 x['A'] = y ;然后列被复制,如果我们用不同的列长度迭代它,例如:
x = pd.DataFrame(np.zeros((4, 3)), columns=['A','B','C'])
y = np.random.randn(4, 2)
并尝试 x['A'] = y 然后第一列也被复制,但如果我们等于 x = y 那么 x 数据帧将与 y 矩阵复制。所以我想我们正在得到这种歧义,因为我们试图将数据框列与在 numpy 中创建的 matix 等同起来。希望能说明
TA贡献1784条经验 获得超2个赞
Pandas 系列是 numpy 数组,因为它是一列,所以将其视为一个对象,引用已更改。
>> import numpy as np
>>> x = np.zeros((4,1))
>>> x = np.random.randn(4,2)
>>> y= np.zeros((4,1))
>>> y
array([[0.],
[0.],
[0.],
[0.]])
>>> x
array([[-1.00731291, -0.37151425],
[-0.78154847, -0.72854126],
[-0.98566253, 1.68786232],
[ 0.12614892, 0.41804799]])
>>> y = x
>>>y
array([[-1.00731291, -0.37151425],
[-0.78154847, -0.72854126],
[-0.98566253, 1.68786232],
[ 0.12614892, 0.41804799]])
添加回答
举报