如果我用单列创建数据框
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]})
然后 a.loc[0, 'x'] = a.loc[0, 'x']
引发错误:
valueerror:用iToserable设置
时必须具有相等的len键和值
有人可以解释我在这里做错了什么吗?我在这里找到了一个解决方案:即使用set_value
代替LOC,但是我想知道为什么loc
不起作用。
另外,这是否适合熊猫数据框架?我有一堆矢量x
,我想与其他一些变量和索引相关联,并且数据框似乎是存储它们并在它们上运行操作的最佳方法(df.apply
非常适合在这些方面进行批量执行操作数组!(。
您可以使用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