看板 Python 關於我們 聯絡資訊
板上各位好 小弟目前在寫code時遇到了一個問題 https://imgur.com/27klW2O 上圖為資料 https://imgur.com/vOgRarl 而這是我的code 我想達到的目的是將第4行是a所對應的第2行資料提取後 加上5以後賦值回去 但跑程式後會報錯無法進行如下圖 https://imgur.com/FakgEmX 也許是我程式的邏輯錯誤了QQ 還不是很會寫python的code 希望板上大大能給點幫助 感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.46.166 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1567760203.A.ED9.html
chen1i6c04: 使用zip和迴圈提取第2行和第4行的值 09/06 21:00
chen1i6c04: 當第4行的值是a時,第2行的值就加5 09/06 21:01
chen1i6c04: 若不是則不動,然後把這些值放入一個list 09/06 21:02
chen1i6c04: 接著將第2行指定為該list 09/06 21:02
chen1i6c04: 好像說的不是很好 囧 09/06 21:03
sexbear: shorturl.at/cuTWX 09/06 21:34
TitanEric: 這是warning 但還是要改個寫法 請參考他附的連結 09/07 10:03
TitanEric: df.iloc[df.iloc[:, 3] == 'a', 1] += 5 09/07 10:13
TitanEric: 請你試一下 手機不方便跑 09/07 10:13
mirror0227: 簡單來說就是你的值傳進了 iloc 生成的 copy 裡面。 09/07 10:42
mirror0227: iloc 沒辦法 handle 間接賦值 09/07 10:42
TitanEric: 發現有錯 請無視我QQ 09/07 10:48
oo855050: 這邊先感謝大家的回覆 09/07 20:01
oo855050: mir大的意思是 iloc只是切片出資料 但並無法直接賦值進 09/07 20:05
oo855050: 原本的資料嗎 09/07 20:05
oo855050: 如果是如此的話 那目前我想達成的目標 應該以什麼指令 09/07 20:06
oo855050: 來實現呢 09/07 20:06
iphone2003: 把titan大的第一個iloc改成loc就可以了 09/07 21:48
TitanEric: 感謝樓上相助 09/08 09:06
oo855050: 好的感謝 我晚點來試試^_^ 09/09 17:09
oo855050: titan大的方式修改後可行 感謝^_^ 09/09 22:19
oo855050: 另外想問一下為何用iloc不行 用loc就可以呢 其中的原理 09/09 23:33
oo855050: 是什麼 09/09 23:33