[问题] pandas赋值取代问题

楼主: oo855050 (阿伟)   2019-09-06 16:56:41
板上各位好
小弟目前在写code时遇到了一个问题
https://imgur.com/27klW2O
上图为资料
https://imgur.com/vOgRarl
而这是我的code
我想达到的目的是将第4行是a所对应的第2行资料提取后
加上5以后赋值回去
但跑程式后会报错无法进行如下图
https://imgur.com/FakgEmX
也许是我程式的逻辑错误了QQ
还不是很会写python的code
希望板上大大能给点帮助
感谢~
作者: chen1i6c04 (轻踏水无痕)   2019-09-06 21:00:00
使用zip和循环提取第2行和第4行的值当第4行的值是a时,第2行的值就加5若不是则不动,然后把这些值放入一个list接着将第2行指定为该list好像说的不是很好 囧
作者: sexbear (uu)   2019-09-06 21:34:00
shorturl.at/cuTWX
作者: TitanEric (泰坦)   2019-09-07 10:03:00
这是warning 但还是要改个写法 请参考他附的连结df.iloc[df.iloc[:, 3] == 'a', 1] += 5请你试一下 手机不方便跑
作者: mirror0227 (镜子)   2019-09-07 10:42:00
简单来说就是你的值传进了 iloc 生成的 copy 里面。iloc 没办法 handle 间接赋值
作者: TitanEric (泰坦)   2019-09-07 10:48:00
发现有错 请无视我QQ
楼主: oo855050 (阿伟)   2019-09-07 20:01:00
这边先感谢大家的回复mir大的意思是 iloc只是切片出资料 但并无法直接赋值进原本的资料吗如果是如此的话 那目前我想达成的目标 应该以什么指令来实现呢
作者: iphone2003 (307)   2019-09-07 21:48:00
把titan大的第一个iloc改成loc就可以了
作者: TitanEric (泰坦)   2019-09-08 09:06:00
感谢楼上相助
楼主: oo855050 (阿伟)   2019-09-09 17:09:00
好的感谢 我晚点来试试^_^titan大的方式修改后可行 感谢^_^另外想问一下为何用iloc不行 用loc就可以呢 其中的原理是什么

Links booklink

Contact Us: admin [ a t ] ucptt.com