我有以下代码:
x = pd.DataFrame(np.zeros((4, 1)), columns=['A'])
y = np.random.randn(4, 2)
x['A'] = y
我希望由于形状不匹配而引发异常。但是熊猫默默地接受了分配:y
的第一列分配给x
。
这是故意设计吗?如果是,那么背后的理由是什么?
我尝试了pandas
0.21和0.23。
感谢那些试图提供帮助的人。然而,尽管赏金即将到期,但没人能给出令人满意的答案。
让我强调期望得到的答案:
由于赏金即将到期,我接受了投票最多的答案。但这并不能为上述问题提供答案。
答案 0 :(得分:0)
对于
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等同时会出现这种歧义。 希望它能解释