[問題] pandas賦值取代問題

看板Python作者 (阿偉)時間5年前 (2019/09/06 16:56), 編輯推噓7(7016)
留言23則, 6人參與, 5年前最新討論串1/1
板上各位好 小弟目前在寫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

09/06 21:00, 5年前 , 1F
使用zip和迴圈提取第2行和第4行的值
09/06 21:00, 1F

09/06 21:01, 5年前 , 2F
當第4行的值是a時,第2行的值就加5
09/06 21:01, 2F

09/06 21:02, 5年前 , 3F
若不是則不動,然後把這些值放入一個list
09/06 21:02, 3F

09/06 21:02, 5年前 , 4F
接著將第2行指定為該list
09/06 21:02, 4F

09/06 21:03, 5年前 , 5F
好像說的不是很好 囧
09/06 21:03, 5F

09/06 21:34, 5年前 , 6F
shorturl.at/cuTWX
09/06 21:34, 6F

09/07 10:03, 5年前 , 7F
這是warning 但還是要改個寫法 請參考他附的連結
09/07 10:03, 7F

09/07 10:13, 5年前 , 8F
df.iloc[df.iloc[:, 3] == 'a', 1] += 5
09/07 10:13, 8F

09/07 10:13, 5年前 , 9F
請你試一下 手機不方便跑
09/07 10:13, 9F

09/07 10:42, 5年前 , 10F
簡單來說就是你的值傳進了 iloc 生成的 copy 裡面。
09/07 10:42, 10F

09/07 10:42, 5年前 , 11F
iloc 沒辦法 handle 間接賦值
09/07 10:42, 11F

09/07 10:48, 5年前 , 12F
發現有錯 請無視我QQ
09/07 10:48, 12F

09/07 20:01, 5年前 , 13F
這邊先感謝大家的回覆
09/07 20:01, 13F

09/07 20:05, 5年前 , 14F
mir大的意思是 iloc只是切片出資料 但並無法直接賦值進
09/07 20:05, 14F

09/07 20:05, 5年前 , 15F
原本的資料嗎
09/07 20:05, 15F

09/07 20:06, 5年前 , 16F
如果是如此的話 那目前我想達成的目標 應該以什麼指令
09/07 20:06, 16F

09/07 20:06, 5年前 , 17F
來實現呢
09/07 20:06, 17F

09/07 21:48, 5年前 , 18F
把titan大的第一個iloc改成loc就可以了
09/07 21:48, 18F

09/08 09:06, 5年前 , 19F
感謝樓上相助
09/08 09:06, 19F

09/09 17:09, 5年前 , 20F
好的感謝 我晚點來試試^_^
09/09 17:09, 20F

09/09 22:19, 5年前 , 21F
titan大的方式修改後可行 感謝^_^
09/09 22:19, 21F

09/09 23:33, 5年前 , 22F
另外想問一下為何用iloc不行 用loc就可以呢 其中的原理
09/09 23:33, 22F

09/09 23:33, 5年前 , 23F
是什麼
09/09 23:33, 23F
文章代碼(AID): #1TSXzBxP (Python)
文章代碼(AID): #1TSXzBxP (Python)