[問題] dataframe apply

看板Python作者 (輕舞飛颺)時間7年前 (2018/07/18 15:42), 編輯推噓2(202)
留言4則, 2人參與, 7年前最新討論串1/1
這是我測試的code def Add_Prefix(df): for i in range(len(df)): df[i] = df.name + '_' + df[i] return df list2 = [['a','c','k'],['g','h','k'],['d','e','k']] df2 = pd.DataFrame(list2,columns=['A','B','C']) print(df2) df2 = df2.apply(Add_Prefix,axis=0) print(df2) 但我得到的目標跟我想像中的不太一樣 A B C 0 a c k 1 g h k 2 d e k A B C 0 A_A_a B_c C_k 1 A_A_g B_h C_k 2 A_A_d B_e C_k 我希望得到的是 A B C 0 a c k 1 g h k 2 d e k A B C 0 A_a B_c C_k 1 A_g B_h C_k 2 A_d B_e C_k 但我搞不懂為什麼第一欄總是會處裡兩次? 找不到關鍵字只好再來這問了 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.177.54.130 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1531899725.A.00A.html

07/18 16:01, 7年前 , 1F
df2.apply(lambda x:x.name+'_'+x)
07/18 16:01, 1F

07/18 16:35, 7年前 , 2F
在pandas apply說明頁面裡面的notes有提到function不能
07/18 16:35, 2F

07/18 16:36, 7年前 , 3F
有side-effects 你在function裡面修改了df的值會造成
07/18 16:36, 3F

07/18 16:36, 7年前 , 4F
unexpected behavior
07/18 16:36, 4F
文章代碼(AID): #1RJkzD0A (Python)
文章代碼(AID): #1RJkzD0A (Python)