看板 Python 關於我們 聯絡資訊
這是我測試的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
TuCH: df2.apply(lambda x:x.name+'_'+x) 07/18 16:01
tsoahans: 在pandas apply說明頁面裡面的notes有提到function不能 07/18 16:35
tsoahans: 有side-effects 你在function裡面修改了df的值會造成 07/18 16:36
tsoahans: unexpected behavior 07/18 16:36