作者a822305877 (轻舞飞扬)
看板Python
标题[问题] dataframe apply
时间Wed Jul 18 15:42:02 2018
这是我测试的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://webptt.com/cn.aspx?n=bbs/Python/M.1531899725.A.00A.html
1F:推 TuCH: df2.apply(lambda x:x.name+'_'+x) 07/18 16:01
2F:推 tsoahans: 在pandas apply说明页面里面的notes有提到function不能 07/18 16:35
3F:→ tsoahans: 有side-effects 你在function里面修改了df的值会造成 07/18 16:36
4F:→ tsoahans: unexpected behavior 07/18 16:36