今天给df筛选出来的数据赋值的时候遇到赋值后没改变的情况,搞了好久终于搞明白了
背景:
我的dataframe有一列是“记录序号”,是一列连续的整数
然后我按条件找到了我要改值的行的一系列整数,分别以start和last为上下界
我就把“记录序号”处于start和last之间的df取出来,再在取出来的里得到列名为"容量"的所有值
这些值我用同样长度的一维array赋值
可是赋值完,再打印出这些“记录序号”处于start和last之间的行,里面的值还是0
有问题的代码如下:
可以看到值被赋完后没有变
其实是因为df[:]返回的是个copy,所以当然没法改变原来的值
验证如下:
两个id不一样
在stackoverflow发现一个可用的赋值方法