如果我创建一个包含单列的数据框
mElements
然后重新分配第一行的值
a = pd.DataFrame({'x': [np.array([1,2,3,4]), np.array([1,2,3])]})
a.loc[0, 'x'] = a.loc[0, 'x']
没有变化。一切都很好!
但是,如果我添加第二列
a.loc[0, 'x']
然后a = pd.DataFrame({'x': [np.array([1,2,3,4]), np.array([1,2,3])], 'y':[1,2]})
抛出错误:
ValueError:使用可迭代
设置时必须具有相等的len键和值
有人可以解释我在这里做错了吗?我找到了一个解决方案here:即使用a.loc[0, 'x'] = a.loc[0, 'x']
代替loc,但我想知道为什么set_value
不起作用。
另外,这是pandas DataFrame的合适用法吗?我有一堆向量loc
,我想与其他变量和索引相关联,而DataFrame似乎是存储它们并在它们上运行操作的最佳方式(x
非常有效以及在这些阵列上批量执行操作!)。
答案 0 :(得分:0)
您可以使用set_value:
a.set_value(0,'x',a.loc[0, 'x'])
Out[619]:
x y
0 [1, 2, 3, 4] 1
1 [1, 2, 3] 2