程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Pandas 数据框列从第一个非零值向前填充大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Pandas 数据框列从第一个非零值向前填充?

开发过程中遇到Pandas 数据框列从第一个非零值向前填充的问题如何解决?下面主要结合日常开发的经验,给出你关于Pandas 数据框列从第一个非零值向前填充的解决方法建议,希望对你解决Pandas 数据框列从第一个非零值向前填充有所启发或帮助;

我希望从第一个非零值向前填充特定的数据帧列,我还想为每个组执行此操作。

df = pd.DataFrame(np.array([[1,0],[1,5,1],8,[2,4,81,0]]),columns=['ID','b','c'])

我想要的结果是:

df2 = pd.DataFrame(np.array([[1,1]]),'c'])

尝试:

df2 = df.groupby('ID',as_index = False)['c'].apply(lambda x: x.replace(to_replace=0,method='ffill'))

问题是未返回原始数据帧。对此的任何帮助将不胜感激!

解决方法

使用 .values 属性:

df['c']=df.groupby('ID',as_index = False)['c'].apply(lambda x: x.replace(to_replace=0,method='ffill')).values

现在,如果您打印 df,您将获得所需的输出:

    ID  b   c
0   1   0   0
1   1   5   1
2   1   8   1
3   2   4   0
4   2   8   1
5   2   81  1
,

试试这个 -

df['c'] = df.groupby('ID')['c'].apply(lambda x: x.replace(to_replace=0,method='ffill')) #print df after this.

大佬总结

以上是大佬教程为你收集整理的Pandas 数据框列从第一个非零值向前填充全部内容,希望文章能够帮你解决Pandas 数据框列从第一个非零值向前填充所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: