如何将Dataframe一列中的三值快速变为二值?

某列有三种可能的取值:1,0,-1,要求将0替换为其前非0的数值。

例如,对于pd.DataFrame({'A':[1,-1,0,0,1,0,-1]})的转换结果为:1,-1,-1,-1,1,1,-1。

我用iloc遍历的方法可以解决,但是速度极慢,请教有没有高效的答案。

我的思路是先将所有0替换成NAN值,然后再用pandas.fillna()函数处理前向填充——该函数有一个“frill”参数,可以用前一个值填充NAN值,这几个函数都是批量执行的速度很快,应该能实现您要的效果

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,目前超出我们的服务范围,暂时无法为您解答。

首次提问人员可免费体验一次有问必答服务。目前首次提问的问题服务范围为:编程语言、Java开发、python、数据库、前端开发 领域专业技术问题,为您提供问题的解决思路和指导。不提供源码代写、项目文档代写、论文代写、安装包资源发送或安装、软件使用指导等服务。

我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。