python中fillna_python – 使用groupby的Pandas fillna

python中fillna_python – 使用groupby的Pandas fillna我试图使用具有相似列值的行来估算值.例如,我有这个数据帧one|two|three111011nan11nan12nan122012nan13nan13nan我想使用列[‘one’]和[‘two’]的键,这是相似的,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

我试图使用具有相似列值的行来估算值.

例如,我有这个数据帧

one | two | three

1 1 10

1 1 nan

1 1 nan

1 2 nan

1 2 20

1 2 nan

1 3 nan

1 3 nan

我想使用列[‘one’]和[‘two’]的键,这是相似的,如果列[‘three’]不完全是nan,那么从列中的值为一行类似键的现有值’3′]

这是我的愿望结果

one | two | three

1 1 10

1 1 10

1 1 10

1 2 20

1 2 20

1 2 20

1 3 nan

1 3 nan

您可以看到键1和3不包含任何值,因为现有值不存在.

我尝试过使用groupby fillna()

df[‘three’] = df.groupby([‘one’,’two’])[‘three’].fillna()

这给了我一个错误.

我尝试了向前填充,这给了我相当奇怪的结果,它向前填充第2列.我正在使用此代码进行前向填充.

df[‘three’] = df.groupby([‘one’,’two’], sort=False)[‘three’].ffill()

感谢您的时间.

解决方法:

如果每组只有一个非NaN值,则每组使用ffill(向前填充)和bfill(向后填充),因此需要使用lambda:

df[‘three’] = df.groupby([‘one’,’two’], sort=False)[‘three’]

.apply(lambda x: x.ffill().bfill())

print (df)

one two three

0 1 1 10.0

1 1 1 10.0

2 1 1 10.0

3 1 2 20.0

4 1 2 20.0

5 1 2 20.0

6 1 3 NaN

7 1 3 NaN

但是如果每组多个值并且需要用一些常数替换NaN – 例如按组表示:

print (df)

one two three

0 1 1 10.0

1 1 1 40.0

2 1 1 NaN

3 1 2 NaN

4 1 2 20.0

5 1 2 NaN

6 1 3 NaN

7 1 3 NaN

df[‘three’] = df.groupby([‘one’,’two’], sort=False)[‘three’]

.apply(lambda x: x.fillna(x.mean()))

print (df)

one two three

0 1 1 10.0

1 1 1 40.0

2 1 1 25.0

3 1 2 20.0

4 1 2 20.0

5 1 2 20.0

6 1 3 NaN

7 1 3 NaN

标签:python,pandas

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170021.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 第九步:导航条的制作

    第九步:导航条的制作导航条之所以放在第九步讲,是因为导航条制作是本教程中最难的部分,自然也是技术含量最高的地方.导航条的制作可易可难,但这里介绍的相对较难,您能坚持到这一步已经很不易,如果你只是有个导航条就满足的话,请参看第八步的副导航条的制作。  先去掉导航条的红色背景,还有就是移除html文件中main-nav层的”class=”hidden””,使导航条的内容显示出来。我们实现导航条图片的变换的方法是纯cs

    2022年7月22日
    7
  • word文档怎么打印成册子_零基础学word文档

    word文档怎么打印成册子_零基础学word文档Word2003是微软公司提供的一款文字处理软件,可以对文字进行排版和编辑、分段等各种处理,最终将编辑好的内容打印出来,是办公室一族中必备的办公软件之一。Word2003具有一个“书籍折页”的功能,能够在一页纸上打印两页的内容,打印后可以从中缝装订成折叠的小册子,更便于携带和阅读,具体怎么来设置呢?就让Word联盟为大家带来分享!动画演示:①打开“页面设置”对话框,切换到

    2022年9月5日
    3
  • 阿里云cdn要备案吗_未备案域名cdn

    阿里云cdn要备案吗_未备案域名cdncdn需要备案么?需要的,使用国内的cdn节点,必须要有备案才可以做cdn,相关部门为防止cdn滥用,要求必须先备案。国内节点只要是大型数据中心的,基本都要备案。使用CDN产品是需要备案的,但不限制在提供商处备案,只要那么,无备案的网站就无法使用CDN了吗?作为这些网站的站长就只能选择免备案的CDN服务商了,而免备案的CDN加速基本节点都是在海外的。1、选择安全可靠的CDN市面上也有一些提供免费C…

    2022年9月10日
    0
  • 通过ManagementObject获取当前打印机设备的状态

    通过ManagementObject获取当前打印机设备的状态首先声明一个打印机状态枚举:publicenumPrinterStatus{[Description("其他状态")]Other=1,[Description(&

    2022年7月2日
    20
  • SPPNet总结

    SPPNet总结背景:RCNN使用CNN作为特征提取器,首次使得目标检测跨入深度学习的阶段。但是在RCNN中,因为全连接层的神经元个数是固定的(权重矩阵的维数是固定的),所以采取对于每一个区域候选都需要首先将图片放缩到固定尺寸(227×227),然后为每个区域候选提取CNN特征的方案。这里存在两个瓶颈,第一重复为每个regionproposal提取特征是及其费时的,SelectiveSearch对于每幅图片产生2k左右个regionproposal,也就是意味着一幅图片需要经过2k次完整的CNN计算得到最终的结果。

    2022年5月2日
    44
  • LSTM时间序列预测及网络层搭建[通俗易懂]

    最近看到一篇博客,是时间预测问题,数据和代码的原地址在这里,https://www.jianshu.com/p/5d6d5aac4dbd下面只是对其复现和思考:首先关于数据预处理的问题,大家可以参考:https://blog.csdn.net/lilong117194/article/details/82911073这里的问题是:给你一个数据集,只有一列数据,这是一个关于时间序列的数据,从…

    2022年4月7日
    431

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号