dataframe df如图
如想对df中所有取值为1的元素进行-1的操作,而不为1的值不变,则写程序:df = df.apply(lambda x:x-1 if x==1)
报错
更改程序为df['a'] = df['a'].apply(lambda x:x-1 if x==1)
依然报错
再更改为df['a'] = df['a'].apply(lambda x:x-1 if x==1 else x)
df变为下图,达到我们的目的
总结:该方法只能针对于dataframe的某一列有效,不能以整个dataframe为对象进行取值替换操作,并且必须写清楚else的情况。如若需要在整个dataframe上进行取值替换操作,可以写一个for循环
for i in df.columns:
df[i] = df[i].apply(lambda x:x-1 if x==1 else x)
即可对整个dataframe进行取值替换。