使用apply方法修改DataFrame

时间:2019-05-18 07:04:57

标签: python pandas

让我们说我有以下DataFrame:

X,Y,Z
a,b,c
d,e,m
h,i,m
k,l,m

我希望能够使用.apply方法在此数据帧上调用函数,因此像df.apply(modFunc())一样,可以将Z列中的所有m值更改为{{1} },结果是

o

这是我的尝试,到目前为止,我还没有找到解决方法:

X,Y,Z
a,b,c
d,e,o
h,i,o
k,l,o

这样做,我得到以下错误:

def replaceFunc():
    df['X'] = df.X.str.replace("m", "o")

df.apply(replaceFunc())

1 个答案:

答案 0 :(得分:0)

如果可能要使用apply,请按axis=1 s行添加DataFrame用于进程:

def replaceFunc(x):
    x['Z'] = x.Z.replace("m", "o")
    return x

df1 = df.apply(replaceFunc, axis=1)

您的解决方案应由DataFrame.pipe更改以处理函数中的DataFrame:

def replaceFunc(x):
    x['Z'] = x.Z.str.replace("m", "o")
    return x

df1 = df.pipe(replaceFunc)

替代:

df1 = replaceFunc(df)